mano의 컴퓨터시스템 구조: 4장 레지스터 전송과 마이크로 연산
4.1 레지스터 전송 언어
마이크로연산: 레지스터에 저장된 데이터를 가지고 실행되는 동작
: 시프트(Shift), 카운트(Count), 클리어(Clear), 로드(Load) 등
4.2 레지스터 전송(Register Transfer)
기본 용어
- 메모리 주소 레지스터(MAR, memory Address Register)
- 프로그램 카운터(PC, Program Counter)
- 명령어 레지스터(IR, Instruction Register)
- 프로세스 레지스터(R1, Processor Register)
레지스터 사이 정보 전송
- R2 ← R1 다음과 같이 치환(Replacement) 연산자를 이용
- 화살표(→): 정보 전송 및 방향.
- 쉼표(,): 동시에 실행되는 두 개 이상의 작업을 구분
- T: R2 ← R1, R1 ← R2 // 두 레지스터 내용이 동시에 교체되는 것을 의미
- R1 레지스터의 n 출력이 R2 레지스터의 n 입력으로 연결되어 있음 (n은 레지스터의 비트수)
- 제어 변수 P는 클록의 상승 에지에서 활성화(t 시점).
- 다음 클록의 상승 에지(t+1 시점)에 데이터가 R2로 병렬로 로드.
- 클록 에지에서 전송이 이루어지며, 제어 조건(P)이 t 시점에 활성화되더라도 실제 전송은 t+1 시점
4.3 버스와 메모리 전송(Bus and Memory Transfers)
버스(bus): 한 번에 하나의 전송만이 이뤄지도록 제어 신호를 이용하여 전송에 사용될 레지스터 선택
메모리 전송
- 읽기(read): 메모리 워드로부터 외부 세계로의 정보 전송
- 쓰기(write): 메모리로 새로운 정보를 저장하는 것
- 메모리 워드는 M으로 표기
- 주소: M[ 주소는 이 안에 표시 ]
- 메모리의 주소를 주소 레지스터(AR, Address Register)로부터 받고 데이터를 데이터 레지스터(DR, Data Register) 에 전송하는 읽기 동작
- Read: DR ← M[ AR ]
- 레지스터 R1에 있는 데이터를 AR에서 지정된 메모리 주소로 전송하는 쓰기 동작
- Write: M[ AR ] ← R1
4.4 산술 마이크로 연산
레지스터에 저장된 데이터에 대해 수행되는 기본적인 연산
- 레지스터 전송 마이크로 연산: 레지스터 사이에서 이진 정보를 전송
- 산술 마이크로 연산: 레지스터에 저장된 수치 데이터에 대해 산술 연산
- 논리 마이크로 연산: 레지스터에 저장된 비수치 데이터에 대해 비트 조작 연산 수행
- 시프트 마이크로 연산: 레지스터에 저장된 데이터에 대해 시프트 연산 수행
기호 표시 | 의미 |
R3 ← R1 + R2 | R1 + R2의 값이 R3로 전송 |
R3 ← R1 - R2 | R1 - R2의 값이 R3로 전송 |
R2 ← R2' | R2의 보수(1의 보수)를 R2에 전송 |
R2 ← R2' + 1 | R2의 보수 + 1(2의 보수)을 R2에 전송 |
R3 ← R1 + R2 ' + 1 | R1 + R2의 보수(2의 보수)를 R3에 전송 |
R1 ← R1 + 1 | R1 + 1(상승 카운트) |
R1 ← R1 - 1 | R1 - 1(하강 카운트) |
R2'은 R2의 보수를 의미
4.5 논리 마이크로 연산
- OR연산: ∨ 로 표기
- AND연산: ∧ 로 표기
- 1의 보수: 문자 위의 바(bar, ㅡ) 로 표
- XOR(exclusive-OR): ⊕로 표기(A와 B중 하나만 참일 경우 -> 둘이 다르면 1, 같으면 0)
selective - set
레지스터 B의 1에 대응되는 부분에 레지스터 A의 비트를 1로 세트시키고, 0에 대응되는 부분의 레지스터 A의 비트에는 영향을 주지 않는 연산
selective - 보수
B의 1에 대응되는 부분의 A의 비트를 보수로 만드는 작용
selective - clear
B의 1에 대응되는 A의 비트만 클리어시키는 연산
mask
B의 0에 대응되는 A의 비트만 클리어되는 연산
insert
비트묶음 속에 새로운 값을 삽입하는 연산, 원하는 위치 비트를 mask 한 후 원하는 값에 OR
원하는 위치 비트를 mask
원하는 값에 OR
clear(= XOR)
A와 B를 비교하여 두 개의 워드가 일치하면 A를 0으로 세트하는 연산
4.6 시프트 마이크로 연산
- 데이터의 직렬 전송을 위해 사용
- 산술이나 논리 연산 및 다른 데이터 처리 동작과 연계하여 사용 가능
논리 시프트(Logical Shift)
- 직렬 입력으로 0이 전송되는 것
- 기호: shl, shr
- R1 ← shl R1: R1을 한 비트 왼쪽으로 시프트
- R2 ← shrR2: R2를 한비트 오른쪽으로 시프트
순환시프트(Circular shift)
- 시프트 레지스터의 직렬 출력을 직렬 입역에 연결하여 원래 저장된 정보의 손실 없이 비트들을 순환시키는 연산
- 기호: cil, cir
산술시프트(Arithmetic shift)
- 부호가 있는 이진수를 시프트하는 것
- 왼쪽 산술 시프트는 이진수에 2를 곱한 것과 같다.
- 오른쪽 산술 시프트는 2로 나눈 것과 같다
'Mano의 컴퓨터시스템구조' 카테고리의 다른 글
[mano의 컴퓨터시스템 구조] 6장 기본 컴퓨터 프로그래밍 (2) | 2024.12.16 |
---|---|
[mano의 컴퓨터시스템 구조] 5장 기본 컴퓨터의 구조와 설계 (0) | 2024.11.27 |
[mano의 컴퓨터시스템 구조] 3장 데이터의 표현 (0) | 2024.11.15 |
[mano의 컴퓨터시스템 구조] 2장 디지털 부속품 (0) | 2024.11.09 |
[mano의 컴퓨터시스템 구조] 1장 디지털 논리 회로 (0) | 2024.11.08 |