최규상 님의 KOCW 강의 "컴퓨터 구조"를 정리한 글입니다.
* David A. Patterson님과 John L. Hennessy 님의
"컴퓨터 구조 및 설계" 책을 교제로 한 강의입니다. (책의 내용은 포함되지 않았습니다)
1. Introduction
Instruction Set
- 컴퓨터의 명령어 셋
- 컴퓨터마다 다름
- 발전과정
- 초창기 컴퓨터들은 매우 단순하였음 (수 적음)
- 현대 컴퓨터들도 단순함 (중간에 복잡함을 겪다가 단순해짐)
ISA (Instruction Set Architecture)
- 하드웨어와 로우레벨 소프트웨어간의 인터페이스
- 레지스터, 메모리 접근, I/O 등의 정보를 하드웨어에 전달함
- 같은 소프트웨어라도, 성능과 비용에 따라서 다양한 CPU에서 동작 가능함
ABI (Application Binary Interface)
- ISA와 OS Interface의 결합
- 애플리케이션이 OS와 상호작용하는 방식을 정의
- 실행 파일 수준에서 바이너리 호환성을 보장하는 역할
MIPS Instruction Set
- MIPS CPU가 사용하는 Instruction Set
- ARM (embedded)에서 사용됨
- 현대적인 ISA에서 함께 사용됨
2. Operations of the Computer Hardware
CPU Byte Addresses
- 대부분의 컴퓨터는 바이트 단위로 메모리에 데이터 저장
Alignment restriction
- CPU는 word 단위로 메모리에 접근함
메모리 읽기 방식
특징 | Big Endian | Little Endian |
워드 주소 기준 | 맨 왼쪽(상위) 바이트가 워드 주소 | 맨 오른쪽(하위) 바이트가 워드 주소 |
메모리 저장 순서 | 큰 자리(상위 바이트)부터 저장 | 작은 자리(하위 바이트)부터 저장 |
예시 (0x12345678 저장 방식, 4바이트 워드) | 12 34 56 78 (높은 바이트가 앞) | 78 56 34 12 (낮은 바이트가 앞) |
사용 프로세서 | IBM 360/370, MIPS, Motorola | Intel 80x86, DEC VAX, ARM (기본적으로 Little) |
직관성 | 사람에게 익숙한 숫자 표현과 동일 | 성능 최적화에 유리 (LSB 먼저 접근 가능) |
MIPS Register
- 32-bit 레지스터 (32개의 비트를 저장할 수 있음)
구성
- 2개의 read port ($t0, $t1)
- 1개의 write port (한번에 한개의 레지스터만 업데이트 가능)
$zero (The Constant Zero)
- MIPS 레지스터 0는 상수 0을 의미 (수정 불가)
3. Operands of the Computer Hardware
Memory Operands (MIPS)
- arithmetic operations을 사용하여 계산함 (load & store 명령어 사용)
example
g = h + A[8]
lw $t0, 32($s3) # load word
add $s1, $s2, $t0
- $t: temporary
- $s: saved variables
A[12] = h + A[8]
lw $t0, 32($s3)
add $t0, $s2, $t0
sw $t0, 48($s3) # store word
Register Operands (MIPS)
Example
f = (g+h) - (i + j)
add $t0, $s1, $s2 # temp t0 = g+ h
add $t1, $s3, $s4
sub $s0, $t0, $t1
- $t: temporary
- $s: saved variables
Registers vs Memory
레지스터
- 훨씬 접근 시간이 빠름
- code density가 높음
- 명령어가 차지하는 공간이 얼마나 효율적인지 나타내는 개념
- 수행하기 위한 명령어 길이가 짧음을 의미함
- 레지스터를 표현하기 위해 5bit 만 필요하기 때문 (모든 레지스터를 5비트로 표현 가능)
- 메모리 접근 기반 명령어는 상대적으로 더 긴 주소나 오프셋을 포함해야 하므로 코드 밀도가 낮아짐
메모리
- 명령 실행은 load-store 명령어를 사용함 (load-store Architecture)
출처