CS 2주차 발자국 및 미션
학습 내용 정리
컴퓨터 구조
25/06/02 - MUX,디코더, 컨트롤 버퍼
MUX
여러개의 입력 중 하나를 출력하는 장치로써 Selection Bit에 의해 출력을 결정함 (1,2,4,8 bit 등 많은 종류가 있음)
1비트 : 2입력 의 예시로 입력핀 2개와 셀렉트 핀 1개 그리고 NAND 게이트 3개로 구성할 수 있다.
8비트 인 경우도 1비트의 원리와 크게 다르지 않고 입력 핀 수와 비트에 따라 Selection Bit의 자릿수만 달라질 뿐이다.
예시) 8비트 2입력 -> Selection 1bit / 8비트 4입력 -> Selection 2bit / 8비트 8입력 -> Selection 3bit
디코더
N bit의 입력 중 2^N개의 비트 중 1개를 활성화 하는 장치 Selection bit와 Enable bit로 결정됨 (4bit->RAM에 활용)
Enable bit가 1로 활성화 되어 있다면 Selection bit에 따라 출력 결정
각 비트를 스플릿터를 활용해 쪼갠 이후 Not게이트와 AND 게이트를 활용하여 구성할 수 있다.
예시) 000-> out0 / 001 -> out1 / 111 -> out7
컨트롤 버퍼
정확한 입력에 따른 출력 값이 나올 수 있도록 입력을 넣을 건지 말 건지 결정하는 역할을 수행하는 장치
입력값을 그대로 내보내거나, 연결을 끊어 어떤 값도 아닌 'U'(Undefined) 상태를 출력할 수 있다.
사전 지식 : 5V -> logical 1 / 0V -> logical 0 / 0.8~2V -> 해석할 수 없는 값(노이즈)
25/06/03 - ALU (반 가산기, 전 가산기 사용)
반가산기, 전가산기
반 가산기는 최하위 1 비트의 덧셈을 가능하게 한다.
하지만 자리올림 입력을 반영하지 못하여 여러 개의 비트를 더하려면 전가산기를 사용해야 한다.
전 가산기는 반가산기 2개와 OR 게이트를 활용하여 만들 수 있다.
ALU
cpu에서 계산을 담당하는 역할을 수행한다. 전가산기를 활용하여 만든다.
추가로 CU와 연결을 위해 여러가지 회로를 추가한다. (Zero Flag,Carry Flag, Enable Output)
25/06/04 - Latch (+ 조합,순차 논리회로)
조합,순차 논리회로
조합 회로는 오직 입력값에 의해서만 출력값이 결정되는 회로로 대부분의 게이트,ALU가 대표적이다.ㅏ
순차 회로는 출력 중 하나를 피드백 신호로 입력되어 상태를 기억할 수 있는 회로를 의미한다.
Latch
순차회로에서 1 비트의 정보를 저장하는 회로
대표적인 종류로는 SR,D,JK Latch 가 있다.
SR Latch
Set-Reset의 줄임말로 두개의 입력에 따라 두개의 출력 값을 가지는 회로이다.
출력 값을 Q,Q'라고 할 때 두 값을 서로 상보적이다. (1,0 / 0,1)
따라서 만약 S,R 모두 1일 경우 논리적 모순으로 사용 불가하다. (NOR 게이트에서 동시에 0을 출력하기 때문)
이 문제로 D 와 JK Latch 등장
D Latch
Data의 줄임말로 1비트의 정보를 저장하는 회로이다.
입력을 1개로 줄임으로써 SR의 문제를 해결한다.
JK Latch
SR 회로의 단점을 보안한 회로 J,K 입력 모두 1,1이여도 출력에서 반전 시켜 준다.
즉, 토글 기능이 가능하다.
25/06/05 - Ram (+ Register)
플립플롭
1비트의 정보를 저장할 수 있는 순서회로
Ram
사전 지식 (Register) - 1bit의 메모리 Latch에 연결된 여러비트를 저장하는 메모리
Cpu가 사용할 정보를 저장하는 장치로써 주소+데이터로 이루어져 있다.
자료 구조_알고리즘
25/06/02~05 - RedBlackTree
RedBlack Tree
AVL 트리보다 삽입,삭제가 빠르지만 탐색속도는 느리다. (AVL 보다 균형을 느슨하게 체크하기 때문)
노드마다 색깔이 있으며, 기본적인 높이랑 Black Height라는 높이를 활용하여 균형이 맞는지 체크한다.
Heap , PriorityQueue
우선순위 큐는 힙를 이용하여 우선순위가 높은 노드 순으로 삽입,삭제 연산을 하는 자료구조이다.
힙은 (최소힙으로 가정) 루트 부터 시작하여 가장 작은 값이 부모 노드가 되는 구조의 완전 이진 트리이다.
학습하면서 깨달은 점 , 느낀 점
1주차 자료구조 강의에 내용 중 어려운 부분은 50%만 이해하고 넘겼는데 이것이 나비효과가 되었다.
2주차 강의에서 새로운 내용을 공부할 때 이해가 안가는 부분들이 대부분 이전 학습에서 이해하지 못한 부분이었다.
따라서 미션을 하면서 하나하나 코드를 다시 이해하고 해결해야 상황이 와서 힘들었다.
추가로 컴퓨터 구조는 Register, Ram 부분 부터 이해가 잘 안갔다. 어려운 점이 많아 미션할 때 힘들었다.
다음 내용을 공부하기 전에 한번 더 복습하면서 70~80% 이해하면서 넘어가야 겠다.
다음주 학습 목표새로운 내용을 공부하기 전 복습하고 진행하기
코드를 스스로 작성해보기 + 반복 작성 훈련
미션 과정 및 느낀점
자료구조 알고리즘의 경우는 삽입,삭제의 케이스들을 이해하면서 학습을 했다.
학습 내용을 바탕으로 우선순위에 따라 Dequeue가 가능하도록 구현했다.
isBigPriority에서 첫번째 우선순위를 비교하고 동일하다면 두번째 우선순위를 비교하도록 작성했다.
컴퓨터 구조의 경우 1~3은 회로의 수와 비트 수를 늘리고 그에 맞게 연결하여 풀었다.
4번 문제는 RAM, Register 이해를 해보려고 많이 노력해봤지만 쉽지 않았다.
또한 질문을 하고 싶어도 어떤 부분을 정확히 모르는지 나도 모르는 상태라서 더 답답했다.
따라서 기존의 RAM 2개를 연결하면 되지 않을까 했지만 실패했다.
미션 난이도가 점점 쉽지 않다는 것을 느낀다.
스스로 칭찬
1주차 글보다 조금 더 정돈된 글을 작성한 점 칭찬!
2주차까지 포기하지 않고 강의를 끝까지 들은 점 칭찬!
지난 주 목표를 모두 성공한 점 칭찬!
댓글을 작성해보세요.