인프런 워밍업 클럽 스터디 4기 - CS 전공지식 > 3주차 발자국
◼만들면서 쉽게 배우는 컴퓨터 구조
Section8) 제어 장치가 없는 컴퓨터
제어 장치가 없는 컴퓨터
명령어 실행시 MI, RI, RO, II, IO, AI, AO, BI, BO, EO, SU 등의 제어 신호를 외부에서 직접 활성화해주는 방식
예시
RAM의 15번지 값 5를 레지스터 A에 저장

Section9) CPU 만들기: 제어 장치 (Control Unit)
1바이트 기계 명령어
상위 4비트(Opcode) + 하위 4비트(주소 또는 값)로 구성
종류 (Opcode)
NOP (0000), LOADA(0001), ADD(0010), SUB(0011), STOREA(0100), LOADI(0101), JMP(0110), JMPC(0111), JMPZ(1000), OUT(1110), HLT(1111)
Program Counter (PC)
다음에 실행할 명령어의 주소를 저장하는 레지스터
보통 클럭 신호에 맞춰 1씩 증가하며 명령어를 순차적으로 실행하지만, 조건에 따라 특정 주소로 점프(Jump) 하기도 한다.
스텝 카운터(Step Counter)
시스템 내에서 현재 동작이 몇 번째 단계(스텝)인지 추적하는 카운터
어떤 동작이 여러 단계(Step 0, Step 1, Step 2, ...)로 나뉘어 있을 때, 지금 어느 단계인지 기억하고 다음 단계로 이동하기 위해 사용되는 카운터
제어장치 (Control Unit)
NOP, LOADA, ADD, SUB, STOREA, LOADI, JMP, JMPC, JMPZ, OUT, HLT, 출력 레지스터로 구성
Section10) 기계어와 어셈블리
어셈블리어
어셈블리어는 기계어(Machine Code)를 사람이 조금 더 이해하기 쉬운 형태로 바꾼 언어
예시

어셈블러
어셈블리어로 작성된 코드를 컴퓨터가 실행할 수 있는 기계어(이진 코드)로 변환해주는 프로그램
◼ 그림으로 쉽게 배우는 자료구조와 알고리즘
Section7) 트라이와 자동완성
트라이(Trie)
문자열을 저장하고 검색하는 데 특화된 트리 자료구조
루트부터 리프까지의 경로가 하나의 단어
효율적인 자동완성, 사전 검색, 접두사 검색에 사용됨
사용 예: 검색창 자동완성, 입력기 등
Section8) 그래프
그래프
정점(Vertex)과 간선(Edge)으로 이루어진 자료구조
방향 그래프: 간선에 방향이 있음 (ex: A → B)
무방향 그래프: 간선에 방향 없음 (ex: A—B)
탐색 방법
DFS : 한 방향으로 계속 깊이 들어가며 탐색하는 방식
BFS : 가까운 정점부터 차례대로 탐색하는 방식
표현 방식
인접 행렬: 2차원 배열로 표현
인접 리스트: 각 정점이 연결된 정점을 리스트로 표현
Section9) 가중 그래프
각 간선(Edge)에 숫자 값(가중치, 비용, 거리 등)이 부여된 그래프
예) 도시간 거리 그래프
🗒회고
지난 주차에 배웠던 RAM, Register, ALU에 이어 Control Unit도 구현해 보았는데, 난이도가 점점 높아지고 있는 것을 실감했다. 수동으로 제어 신호(MI, RO, AO 등)를 켜서 RAM에서 레지스터로 값을 이동시키는 과정도 경험해 볼수 있었고, 기계어를 사람이 이해하기 쉽게 만든 어셈블리어와, 이를 기계어로 변환하는 어셈블러의 역할까지 학습해 봄으로써 하드웨어 수준의 명령어 실행 과정을 이해할 수 있었다.
🏷출처