X-Bit Computer
X의 의미
32-bit computer, 64-bit computer 등의 X-bit computer에서 X가 의미하는 것은 "Size of ALU input operands"이다.
즉, ALU가 몇 bit의 정보를 받아서 처리할 수 있는가를 나타낸 것이다.
만약, 32-bit computer라면 ALU는 32bit의 data를 받아서 처리할 수 있다.
다음과 같은 것들도 X에 따라 변화한다.
- Size of register
- Length of instructions
- Width of processor data bus
- Width of processor address bus
- Width of I/O bus
- Number of data lines(pins) of processor
- Number of address lines(pins) of processor
X의 크기와 컴퓨터의 성능
X의 수가 높을 수록 프로세서가 한번에 처리할 수 있는 크기가 늘어나기 때문에 성능은 더욱 powerful 해진다.
Multimedia data 등의 데이터 처리에서는 parallel operation을 통해서 더욱 빠르게 처리할 수 있다.
SIMD(Single Instruction Multiple Data)나 subword parallelism 등이 있다.
- SIMD : 여러 개의 데이터에 병렬로 같은 연산을 수행
- subword parallelism : 하나의 워드를 작게 나눠서 병렬로 처리
어떤 프로세서에서 integer data의 크기가 16bit이라 하자.
멀티미디어 데이터는 아날로그 데이터를 표현하기 위해서 매우 많은 샘플을 데이터로 저장한다. 즉, 데이터의 크기가 크다.
16bit씩 독립적(병렬)으로 연산을 처리함으로써 64bit computer는 32bit computer에 비해 적은 수의 연산으로도 가능하다.
X의 크기와 프로그램의 최대 크기
32bit computer는 address의 길이가 32bit이다. 따라서 최대 $2^{32}$bit(4GB) 크기의 메모리 공간/프로그램의 크기를 가질 수 있다.
모든 메모리 공간에 대해 접근할 수 있어야 하기 때문이다.
즉, X가 커질수록 가질 수 있는 프로그램의 크기가 커진다.
X의 크기와 Memory Addressing
컴퓨터는 메모리의 1byte마다 index을 지정하는 byte addressing을 사용한다.
즉, 한 번지에 1byte(8bit)의 데이터를 저장하는 셈이다.
메모리는 하나의 큰 1차원 배열의 구조를 가지고 있다.
메모리에 접근하기 위해 배열에 붙이는 index를 memory address라 한다.
32bit computer에서는 왼쪽과 같은 single memory를 4칸씩 묶어서 하나로 사용한다.
X와 Memory Alignment
Memory alignment는 컴퓨터 메모리에서 데이터가 정렬되는 것을 말한다.
정렬된 것을 aligned, 정렬되지 않은 것을 unaligned라고 한다.
정렬되지 않으면 메모리 접근이 더 많이 발생하기 때문에 성능 저하가 일어난다.
32-bit computer라고 가정했을 때, 1byte 데이터의 저장은 문제가 되지 않는다.
그러나 여러 바이트 크기의 데이터 저장은 데이터의 시작 부분을 잘 맞춰야 한다.
만약, half word 데이터가 3번지부터 저장이 된다면, 2bytes가 쪼개져서 첫번째 바이트와 두번째 바이트는 다른 줄에 저장이 되게 된다.
이렇게 되면 메모리를 두 번 읽어야 하고 성능 저하가 일어난다.
word를 저장하는 주소(word address)는 4의 배수(0, 4, 8...)에서 시작해야 하므로 맨 끝의 2bit는 항상 0이 되어야 한다.
참고 : 관습적인 표현 - Little Endian / Big Endian
1950년대에는 컴퓨터가 인터넷으로 연결되지 않고 따로따로 존재하는 형태였다.
때문에 컴퓨터를 설계할 때 용어나 관습이 다른 회사에서 사용되고 있으면(not invented here) 다른 용어나 관습을 사용하였다.
이 때 많은 용어나 관습이 생겨났다.
이 중 하나가 바이트를 배열하는 두 방식인 little endian, big endiand이다.
두 방법의 성능 차이는 크게 없으며, 오늘날은 여러 architecture에서 두 방식을 사용하고 있다.
'Computer Science > Computer Architecture' 카테고리의 다른 글
I/O : Interconnection (0) | 2021.03.27 |
---|---|
Microcontroller, Memory Map, Processor Databook (0) | 2021.03.27 |
반도체 기술과 프로세서 기술의 발전 (0) | 2021.03.25 |
여러가지 컴퓨터 (0) | 2021.03.19 |
Computer and Our Life (0) | 2021.03.18 |
댓글