메모리 구성 및 주소 지정
플립플롭은 개별 비트를 기억하는 데 유용하며 레지스터를 사용하면 여러 비트를 쉽게 저장할 수 있습니다.
하지만 더 많은 정보를 저장해야 한다면 어떻게 해야 할까요? (예: 다른 추가 결과 저장)
→ 많은 레지스터를 쌓은 후 디코더를 프리미티브로 사용하여 각 레지스터에 번호를 부여하십시오!
(이 번호를 주소라고 합니다)
→셀렉터를 사용하여 지정된 주소에 해당하는 레지스터의 출력을 선택하십시오!
==> 이러한 요소의 조합은 메모리 구성 요소를 만듭니다.
- 랜덤 액세스 메모리(RAM)
- 모든 위치에서 순서에 관계없이 쓰거나 읽을 수 있습니다.
- 정적 RAM(SRAM) / 동적 RAM(DRAM)
- 휘발성 메모리 – 전원이 꺼지면 데이터가 손실됨
- 코어 메모리
- 비휘발성 RAM – 고리 모양의 금속 조각에 비트를 저장합니다.
- 읽기 전용 메모리(ROM)
- 1회 쓰기 메모리(문자 그대로)
블록 장치
- 운전하다
플래시 메모리 및 SSD
- 플래시 메모리
- 뮤직 플레이어 및 디지털 카메라와 같은 애플리케이션에 적합
- EEPROM보다 빠르게 지울 수 있고 저렴하며 RAM과 같이 어디에서나 읽을 수 있습니다.
오류 감지 및 수정
다양한 요인(예: 우주선)으로 인해 비트가 잘못된 경우 → 어떻게 신속하게 감지하고 수정할 수 있습니까?
=> 패리티, ECC 메모리 바늘, 체크섬, 순환 중복 검사…
하드웨어와 소프트웨어 비교
논리 하드웨어를 만드는 것과 소프트웨어를 만드는 것의 차이점은 무엇입니까?
→ 거의 차이가 없습니다! (하드웨어는 설계하는 데 시간이 더 걸린다는 사실에 대해)
제4장 내부 컴퓨터 구조 – 컴퓨터 하드웨어는 어떻게 구성되어 있는가
컴퓨터 = 전자 부품의 다양한 조합으로 비트를 조작하는 회로
= 메모리(저장장치), 입출력, CPU(중앙처리장치)로 나눌 수 있다.
저장
컴퓨터는 자신이 조작하는 비트를 저장할 장소가 필요하며 이를 메모리라고 합니다.
그것은 일련의 집들과 같으며, 모두 같은 크기(1바이트)이고 각각 고정된 수의 비트를 저장할 수 있는 방이 있습니다!
읽기 메모리는 x바이트여야 합니다. (예: 32비트 컴퓨터 – 4바이트 청크, 64비트 컴퓨터 – 8바이트 청크)
최신 컴퓨터는 단일 정렬 액세스로 데이터를 읽을 수 있습니다.
사용하는 프로세서에 따라 0번째 바이트의 좌/우 위치가 다릅니다.
입구와 출구
예전에는 I/O 거리와 스토리지 거리를 분리하는 것이 합리적이었습니다.
그러나 메모리가 증가함에 따라 메모리 주소는 I/O를 지원하는 데 사용됩니다.
→ 표준 입/출력 슬롯의 경우 각 슬롯을 차지하는 장치는 할당된 주소를 사용합니다.
중앙 장치
실제 계산을 수행하는 컴퓨터 부분.

- 산술 논리 장치(ALU)
- CPU의 핵심 부품 → 산술 연산, 부울 대수 등의 연산을 할 수 있는 장치
- 피연산자: 숫자를 나타내는 비트
- opcode(opcode): ALU가 피연산자에 적용하는 연산자를 나타냅니다.
- 결과: 연산자를 피연산자에 적용한 결과입니다.
- 조건 코드: 결과에 대한 추가 정보를 포함합니다.
- 층
- 왼쪽 시프트는 숫자의 모든 비트를 왼쪽으로 1비트 이동하여 가장 왼쪽 비트를 버리고 가장 오른쪽 비트에 0을 넣어 비어 있게 합니다(오른쪽 시프트는 그 반대).
- 실행 단위
- 메모리의 특정 위치에서 opcode와 피연산자를 검색하고 ALU에 수행할 작업을 알리고 결과를 메모리로 반환합니다.
- 이 시점에서 실행 장치는 메모리에서 이러한 명령어를 찾습니다(예: 주소 10의 숫자를 12의 숫자에 더하고 결과를 14에 넣습니다)!
(이러한 방식으로 실행되는 컴퓨터를 프로그램 저장 컴퓨터라고 합니다.) - 명령: 컴퓨터에게 무엇을 해야 하는지 알려주는 비트 패턴.
- 프로그램 카운터: 실행 장치가 메모리에서 명령을 가져올 위치를 알 수 있습니다.
- 메모리와 분리된 특별한 위치에 상주하는 일종의 레지스터
명령어 세트
- 명령
- 어큐뮬레이터
- ALU에서 계산한 결과 저장
- 메모리 위치의 값과 누산기의 값에 대해 연산을 수행하고 결과를 누산기에 넣습니다.
- 주소 지정 모드
- 직접 주소 지정: 사용할 주소를 명령어에 직접 입력
- 간접 주소 지정: CPU는 명령의 값을 명령의 피연산자의 주소를 얻을 수 있는 메모리 위치를 가리키는 주소로 해석합니다.
- Immediate addressing mode: 주소에 해당하는 비트를 값으로만 취급(어큐뮬레이터에 상수를 쓸 때 사용)
- 조건 코드 문
- 조건 코드 레지스터의 값을 누산기에 복사하는 cca 명령을 추가할 수 있습니다.
- 누산기의 값을 조건 코드 레지스터에 복사하는 acc 명령을 추가할 수 있습니다.
- 분기 명령
- 프로그램 카운터의 값을 변경할 수 있는 명령어 → 일부 코드를 선택적으로 실행!
- 명령 집합의 최종 구성
- 모드(어드레싱 모드) – 명령 코드 – 주소
최종 디자인
- 명령 레지스터
- 명령 실행 = 패치(메모리에서 명령 가져오기) – 실행(이 명령을 실행하는 방법)
- 데이터 경로 및 제어 신호
- 프로그램 카운터의 값을 메모리 주소 버스에 저장하는 방법과 메모리의 데이터를 명령어 레지스터에 저장하는 방법이 필요합니다.
- 데이터 흐름 제어
- RISC 및 CISC 명령어 세트
- 그래픽 카드
- 그래픽 카드