본문 바로가기
컴퓨터 구조

[컴퓨터 구조] Memory와 숫자 표현

by IT 정복가 2022. 4. 11.
728x90

*[Mano의 컴퓨터 시스템 구조 3판]의 공부할겸 요약한 내용입니다.


메모리 장치

- 정보의 입출력 기능을 가지고 있는 저장요소들의 집합이다.

- 메모리는 이진정보를 word단위로 저장한다.

- 메모리의 각 워드는 0에서부터 2^k-1까지의 주소를 가지고 있어서 주소 입력의 값에 따라 특정 워드가 선택된다.

- 메모리의 크기: 1Kilo(K) = 2^10      1Mega(M) = 2^20      1Giga(G) = 2^30

- 메모리 용량은 저장할 수 있는 총 바이트 수로서 나타낸다.

*word(워드): 정보처리의 단위로 1개 이상의 바이트로 구성된다.

*Byte(바이트): 8bits로 이루어진 비트 그룹

 

IC Memory

- RAM: Volatile(휘발성) Memory- ROM: Non-Volatile(비휘발성) Memory

 

임의접근 메모리(RAM: random-access memory)

- 전원 Off시 저장 내용이 사라진다.

- Word의 물리적인 저장 위치에 관계없이 Read나 혹은 Write Access Time이 동일하다.

*Memory Write 과정

1. 원하는 워드의 이진 주소값을 주소 입력에 넣는다.

2. 메모리에 저장될 데이터 비트들을 데이터 입력에 넣는다.

3. 쓰기(Write) 입력을 활성화한다.

 

*Memory Read 과정

1. 원하는 워드의 이진 주소값을 주소 입력에 넣는다.

2. 읽기(read) 입력을 활성화 시킨다.

RAM에 대한 블럭도

- 차세대 RAM: 기존의 RAM과 비슷한 접근 속도를 유지하며, 전원이 Off 되어도 저장 내용이 보존되는 메모리이다.

          1) 종류에는 P-RAM, R-RAM, F-RAM, M-RAM이 있다.

          2) 단점으로 용량이 작고, 고가이다.

 

- Memory의 데이터 전송을 향상 시키는 방법

          1) Data Bus 대역폭 증가: 4bit >> 8bit >> 16bit >> .....

          2) Data 전송 속도를 빠르게 함: SDR >> DDR >> QDR >> XDR >> ....

 

- Moblie DRAM(LP DRAM)

          1) 소형 이동성 무선 통신 기기에 사용됨

          2) 소비전력 최소화가 요구됨 > 열 발생 감소

          3) 일반 DRAM보다 고가임

 

 

읽기 전용 메모리(ROM: read-only memory)

- 전원 Off시 저장 내용이 사라지지 않는다.

- 특수 내장 전자 퓨즈(Fuse)에 의해 프로그램 된다.

- ROM Writer나 ROM Programmer에 의해 정보가 저장된다.

*한 워드가 n비트이고, 총 m워드를 저장한다.

2^k = m 워드 중에서 하나를 선택하기 위한 k개의 주소입력과 용량의 확장을 위한 인에이블 입력을 가지고 있다.

m x n ROM의 블럭도

- ROM의 종류

          1) Mask programming ROM: 반도체 최종 공정 단계에서 프로그램 된다.

          2) P(Programmable)ROM: 사용자가 1회 H/W 과정으로 프로그램 가능

          3) E(Erasable)ROM: ROM의 내용을 자외선으로 초기화 한 후 재사용이 가능하다.

          4) E(Electrically)EPROM: ROM의 내용을 전기적으로 최기화한 후 재사용이 가능하다.  

 

 

데이터의 종류

- 이진 정보는 메모리 또는 CPU 레지스터에 저장된다.

- 이진 정보는 순수Data이거나 제어Data를 말한다.

          1) 순수Data는 숫자, 영문자(한글), 특수 기호 등으로 된 일반 Data이다.

          2) 제어Data는 일련의 Command Signal들을 말한다.

 

진법

- 10진법: 10개의 숫자(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)로 구성된다.

- 2진법: 2개의 숫자(0,1)로 구성된다.

- 16진수: 16개의 숫자와 영문자(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F)로 구성된다.

 

2진수에서 10진수로 변환

ex) 1011.101 = (1x2^3)+(0x2^2)+(1x2^1)+(1x2^0)+(1x2^-1)+(0x2^-2)+(1x2^-3)

= 8 + 0 + 2 + 1 + 0.5 + 0 + 0.125

= 11.625

 

10진수에서 2진수로 변환

ex) 37이라는 10진수가 있다면 몫이 0이 될 때까지 2로 나눈다.

37/2 = 몫: 18  나머지: 1 (LSB)

18/2 = 몫: 9  나머지: 0

9/2 = 몫: 4  나머지: 1

4/2 = 몫: 2  나머지: 0

2/2 = 0 몫: 1  나머지: 0

1/2 = 0 몫: 0  나머지: 1 (MSB)

*나머지를 아래에서 위로 읽는다 >> 100101

*LSB: 가장 중요하지 않은 비트(= 변경되어도 크게 상관없는 비트)

*MSB: 가장 중요한 비트(= 변경되면 수의 크기가 많이 바뀌는 비트)

 

16진수에서 10진수로 변환

ex) 2AF라는 16진수가 있다. (A = 10, F = 15)

(2x16^2)+(10x16^1)+(15x16^0)

512 + 160 + 15 = 687

 

16진수에서 2진수로 변환

ex) 9F2라는 16진수가 있다. (F = 15)각 자리에 있는 숫자 및 영문자를 각각 이진수로 변환해준다.9 = 1001F = 11112 = 0010 = 100111110010

 

2진수에서 16진수로 변환

ex) 1110100110이라는 2진수가 있다. 이진수를 오른쪽에서부터 네 자리씩 묶는다.

그러면 11  1010  0110가 된다. 네자리가 안 된 곳이 있으면 0으로 채워준다.

0011  1010  0110

0011 = 3

1010 = A

0110 = 6

= 3A6

 

BCD 기법

ex) 874라는 10진수가 있다고 할때 10진수의 각 숫자를 4bit의 2진수로 표기한다.

8 = 1000

7 = 0111

4 = 0100

= 1000 0111 0100

 

*137이라는 10진수가 있다고 할 때 BCD와 Binary의 비교

137 = 10001001 (Binary) 8bits

137 = 0001 0011 0111 (BCD) 12bit

 

 

보수

- 디지털 컴퓨터에서 뺄셈 연산과 논리 계산에 사용된다.

- r진법에는 두가지 종류의 보수가 있다.

          1) r의 보수

          2) (r-1)의 보수

          ex) 2진수는 2의 보수와 1의 보수가 가능하고 10진수는 10의 보수와 9의 보수가 가능하다.

 

(r-1)의 보수

r진법의 n자리 수 N에 대하여 (r-1)의 보수는 (r^n-1)-N으로 정의된다.

 

십진수에서 r이 10이라면 9에대한 보수는 (10^n-1)-N이다.

10^n-1은 n개의 9로 구성되어 있다.

따라서 9의 보수는 각 자리의 숫자를 9에서 뺀 것가 같다.

예를 들어, 546700에 대한 9의 보수는 

999999-546700 = 453299이다.

 

이진수의 경우, N에 대한 1의 보수는 (2^n-1)-N이다.

이진수에 대한 1의 보수는 각 자리의 숫자를 1에서 뺀 것과 같다.

예를 들어, 101101에 대한 1의 보수는

111111-101101 = 010010이다.

이진 숫자를 1에서 뺀다는 것은 1은 0으로 0은 1로 바꾸는 것이므로

이진수에서 1의 보수는 각 자리의 수를 

1은0으로 0은 1로 바꿔주는 것이다. 

방금 본 101101에 대한 1의 보수를 

1은 0으로 0은 1로 바꿔주면

101101 >> 010010로 위와 같은 값이 나온다.

 

r의 보수

r진법의 n자리수의 수 N에 대한 r의 보수는

N ≠ 0일때, r^n-N이고

N = 0일때, 0으로 정의된다.

r의 보수는 (r-1)의 보수에 1을 더함으로써 얻어진다.

 

십진수에서 2389에 대한 10의 보수는 

우선 (r-1)의 보수를 구한다.

9999 - 2389 = 7610

여기에 1을 더한다.

7610 + 1 = 7611

 

이진수에서 101101에 대한 10의 보수는

우선 (r-1)의 보수를 구한다.

101101 >> 010010

여기에 1을 더한다.

010010 + 1 = 010011

 

*0에 대한 r의 보수는 0이다.

*소수점이 있는 숫자의 r의 보수나 (r-1)의 보수는 소수점을 제거하고 계산한 후

최종 결과에 다시 소수점을 원위치 시킨다.

728x90