EN의 의미가 뭔지부터 모르는 거 같은데... EN은 enabled의 약어로 해당 칩의 동작 여부를 결정함. CPU Clock이 1이 되었을 때 ROM_EN에 전기 신호가 들어오면(1이면) ROM이 동작하고 RAM_EN이 1이면 RAM이 동작하는 식. RAM_EN이 1일 조건은 주소 중에 A3/A2번 비트가 1일 경우에 1이 된다는 건데 이건 뭘 의미하냐면 주소 값을 이진수로 나열했을 때 제일 낮은 오른쪽 자리가 A0이고 제일 높은 자리가 A3이 되는데 A2/A3번째 이진수 자리가 모두 1이어야(다시 말해 주소가 11xx) 이 메모리 주소는 RAM 안의 메모리 주소로 작용하는 것이고 그렇지 않고 (A3,A2)가 10, 01, 00 중에 하나이면 ROM의 주소가 되는 거지. 다시 말해 이 컴퓨터는
ㅅㅅㅅ(125.128)2015-04-08 03:25
1100~1111 번지를 RAM의 주소 공간으로 쓰고 0000~1011을 ROM의 주소 공간으로 쓴다는 말이다.
ㅅㅅㅅ(125.128)2015-04-08 03:25
예를 들어 너가 CPU를 설계한다고 해보자. 이 CPU에서는 메모리 주소를 32비트로 표현한다고 치자. 즉 이진수로 나열했을 때 자리 수가 32개라는 거지. 이걸 낮은 자리부터 A0 ~ A31로 표현했다고 치자. 이제 메모리 주소를 16진수로 표현했을 때 너는 ROM을 0x00000000~0x0000FFFF의 주소를 주고 나머지는 다 RAM으로 쓰고 싶다고 해봐. 그럼 ROM_EN 회로를 어떤 식으로 구성하겠냐?
ㅅㅅㅅ(125.128)2015-04-08 03:28
ROM의 주소면 0x0000????이 되고 RAM의 주소면 0x00010000~0xFFFF0000이라는 거니까 16진수로 위의 4자리, 다시 말해 2진수로 높은 16자리(2^4 = 16이니까 16진수 한 자리는 2진수로 4자리에 대응)가 모두 0이 되면(NOT A31 AND NOT A30 AND NOT ... 식으로) ROM_EN에 1이 들어오게, 그리고 이걸 NOT 게이트에 통과시켜서 RAM_EN로 들어오게끔 회로를 짜면 되겠지.
오른쪽에 위아래로 긴 표보면 되는거야
A3, A2 만가지고 빨간 부분이랑 녹생 부분이랑 구별할 수 있자나 ㅉㅉㅉ
아 진짜 내가멍청한건가 왜 이해가잘안되지.... 왜A3과A2부분만 특별한거죠?
사실 저걸 참고하여서 255*7짜리 표를보고 디코더를설계해야하는데 저 자그만한표조차 이해못하면 진짜표를 봐봤자 모르니깐 아 진자 저두줄이 왜특별한지도모르겟고 연산식이 왜저렇게나오는지도모르겠고 눈물납니다
야이 멍청아. A3,2가 특별한게 아니고 지금 예시로 나온 어드레스맵이 그러케 되있자나. 0xC 부터 0xF까지를 램으로 할당 시키려고 하는데 [0xC, 0xD, 0xE, 0xF] 랑 [0xB, ... 0x0] 이 이랑은 MSB 2비트만 보면 구별 할 수 있자나
그냥 애덜 불러서 술이나 푸고 맘편히 C+ 받아라
이걸 왜 이해를 못하는거지....
아싸라 친구는 못부르겠고 맥주 한캔사왓습니다 밤새 처다보면 저같은 멍청이도 이해될수잇겠죠?
맥주먹으면서 하시면 더 안될건데
EN의 의미가 뭔지부터 모르는 거 같은데... EN은 enabled의 약어로 해당 칩의 동작 여부를 결정함. CPU Clock이 1이 되었을 때 ROM_EN에 전기 신호가 들어오면(1이면) ROM이 동작하고 RAM_EN이 1이면 RAM이 동작하는 식. RAM_EN이 1일 조건은 주소 중에 A3/A2번 비트가 1일 경우에 1이 된다는 건데 이건 뭘 의미하냐면 주소 값을 이진수로 나열했을 때 제일 낮은 오른쪽 자리가 A0이고 제일 높은 자리가 A3이 되는데 A2/A3번째 이진수 자리가 모두 1이어야(다시 말해 주소가 11xx) 이 메모리 주소는 RAM 안의 메모리 주소로 작용하는 것이고 그렇지 않고 (A3,A2)가 10, 01, 00 중에 하나이면 ROM의 주소가 되는 거지. 다시 말해 이 컴퓨터는
1100~1111 번지를 RAM의 주소 공간으로 쓰고 0000~1011을 ROM의 주소 공간으로 쓴다는 말이다.
예를 들어 너가 CPU를 설계한다고 해보자. 이 CPU에서는 메모리 주소를 32비트로 표현한다고 치자. 즉 이진수로 나열했을 때 자리 수가 32개라는 거지. 이걸 낮은 자리부터 A0 ~ A31로 표현했다고 치자. 이제 메모리 주소를 16진수로 표현했을 때 너는 ROM을 0x00000000~0x0000FFFF의 주소를 주고 나머지는 다 RAM으로 쓰고 싶다고 해봐. 그럼 ROM_EN 회로를 어떤 식으로 구성하겠냐?
ROM의 주소면 0x0000????이 되고 RAM의 주소면 0x00010000~0xFFFF0000이라는 거니까 16진수로 위의 4자리, 다시 말해 2진수로 높은 16자리(2^4 = 16이니까 16진수 한 자리는 2진수로 4자리에 대응)가 모두 0이 되면(NOT A31 AND NOT A30 AND NOT ... 식으로) ROM_EN에 1이 들어오게, 그리고 이걸 NOT 게이트에 통과시켜서 RAM_EN로 들어오게끔 회로를 짜면 되겠지.