본문 바로가기

728x90
반응형

마프

마이크로프로세서(16) 프로그램 코드 설계 예제 1. 50H - 40H 문제 : 2052H 주소에 data 50H가, 2051H 주소에 data 40H이 저장되어 있다. 50H - 40H의 값을 2053H 주소에 저장해라. -> 뺄셈은 무조건 A(accumulator)에서 실행 가능하다. -> 40H를 먼저 A로 가져와 B로 옮겨두고, 50H를 A로 가져온다. 그런 후 A에서 B를 빼면 결과가 나온다. LDA 2052H MOV B, A LDA 2051H SUB B STA 2053H 만약 이 코드를 읽고, address bus를 채워 넣으라 하면 다음과 같다. 2. 옛날 호텔 제어 system -> IN 00H : input 포트로부터 00H를 받아서 무조건 A에 저장하라는 명령어. -> 그걸 그대로 output 포트로 내보내면 된다. IN 00H OU.. 더보기
마이크로프로세서(15) I/O interface Memory interface에 대한 내용이 궁금하다면 여기를 클릭 !! 1. Review : Memory interface 메모리는 D flipflop를 사용한다. 참고로 이번 챕터에서 공부할 I/O는 latch 혹은 버퍼를 사용한다. 2. I/O interface 공간이 모자랄 수 있기 때문에 address bus와 control bus를 결합해서 enable신호를 준다. -> 둘 다 1일 때만 신호를 흐르게 한다. 3. INPUT 포트와 OUTPUT 포트 active low로 동작한다. 인풋 포트 00H를 enable시키면 다음 그림과 같다. 그 아래 그림은 비용 절감이라는 장점이 있는 버전이다. 오류 ㅎㅎ ㅠㅠ : input 포트는 NAND 게이트로 연결되어야 함 오류 ㅎㅎ ㅠㅠ : input 포.. 더보기
마이크로프로세서(14) 타이밍도 1. demultiplexing Read 할 때의 순서 : Address bus --> Control bus --> Data bus Write 할 때의 순서 : Address bus --> Data bus --> Control bus -> Address bus와 Data bus는 동시에 쓰이지 않는다. 그러므로 그걸 같이 써서 효율적으로 줄이자. 이렇게 공용으로 사용하는 것을 demultiplexing이라고 한다. 입력이 1개, 출력이 여러개인 상황을 의미한다. multiplexer는 입력이 여러 개, 출력이 한 개 2. ALE 신호 (1) Ctrl 신호(파랑)을 1로 준다. (2) 잠시 뒤, Ctrl 신호(파랑)을 0으로 바꾼다. (3) 결과를 보면, Q는 그대로 1이 유지되고, 그 밑의 값은 변한다... 더보기
마이크로프로세서(11) I/O interface 3개의 control 신호 control 신호는 크게 4가지가 있다. -> memread, memwrite, IOread, IOwrite. -> 각각 memory를 읽고 쓰기, I/O를 읽고 쓰는 역할을 한다. 그러나 실제로 control 신호는 3가지로 구성된다. 이 3개의 신호들을 메모리에 적용하면 다음과 같은 그림이 나온다. -> 그냥 남는 곳에다가 IO/M[바] 신호를 0으로 연결하자. -> IO/M[바] : 값이 0이면 low 신호이므로 memory, 1이면 high 신호이므로 IO를 선택한다.) I/O interface I/O를 interface시키는 방법은 크게 두 가지가 있다. 1. I/O mapped I/O -> I/O를 I/O 자체에 매핑시킨다. -> 동시에 control 신호가 안 나.. 더보기
마이크로프로세서(10) 38 decoder 이전 글의 개념(38디코더를 사용하는 이유)이 필요하다면 여기를 클릭 !! example problem 0000H ~ 1FFFH 메모리를 설계하시오. (38 디코더를 사용) 처음 주소와 끝 주소를 비교하였을 때, A15부터 같은 값을 가지는 bit까지를 CS에 연결한다. -> 남은 값들은 address bus로 할당한다. 또한 NAND 대신, decoder를 사용할 수 있다. -> 38디코더 : 같은 크기의 메모리 8개까지 확장 가능 -> 하 실수를 또 했넹.. E1과 E2위에 바(bar)가 있어야 하고, E3위엔 아무것도 없어야 합니다!! 예제1 보다 1 큰 번지를 할당하였을 때, 해당 메모리의 시작 번지와 끝 번지는 ? + 설계해라. -> E1과 E2위에 바(bar)가 있어야 하고, E3위엔 아무것도.. 더보기
마이크로프로세서(9) partial decoding, absolute decoding partial decoding 필요한 주소만 연결, 남는 주소는 연결하지 않는 방법. 중복된 번지를 가진다. (ex) address bus는 4개이지만 2개만 쓰고 싶을 때, 아래 그림과 같이 사용하면 된다. Q. 0000번지를 찾을 경우? 0100번지를 찾을 경우? 1100번지를 찾을 경우? -> 모든 경우에 00번지로 찾아내서 내보낸다. -> 즉, 그림에서 A2와 A3는 don't care bit이므로 신경쓸 필요가 없다. 연결이 안된, don't care bit의 개수가 n개 일때 한 공간이 가질 수 있는 번지 수 : 2n개 absolute decoding 다른 말로, complete decoding이라고 한다. 무조건 메모리 하나가 한 번지를 갖는 것을 의미한다. Memory decoding me.. 더보기
마이크로프로세서(8) memory map Memory Map 시작 번지와 끝 번지만 찾으면 된다. 예제 그림을 보고 각각의 상황에서 memory map을 찾아보자. memory map의 시작 : 0, 끝 : 1 memory map의 시작 : 0000H, 끝 : FFFFH memory map의 시작 : 00, 끝 : 01 -> A1 =1이면 동작하지 않는다. 따라서 10과 11의 값은 사용되지 않는다. 00, 01만 사용 memory map의 시작 : 000, 끝 : 011 -> 000 ~ 011만 사용 가능하다. 100 ~ 111은 사용 불가능하다. -> 즉, A2 = 1이면 동작하지 않는다. memory map의 시작 : 0000H, 끝 : 7FFFH -> A15 = 0으로 고정한다. A0와 A14 사이의 값을 0, 1로 줄 수 있다. 주어진.. 더보기
마이크로프로세서(7) computer의 비트 수, 번지 수 늘리기 비트 수 늘리는 방법 한 번지의 비트 수를 늘리는 방법은 다음과 같다. 8bit computer를 2개 사용하면 16bt computer이 된다. (그러나 납땜해야 한다.) 이 방식은 번지 수는 똑같은데, 그 번지 수를 16bit로 확장한 것이라고 볼 수 있다. 번지 수 늘리는 방법 메모리가 모자라면, 하나 더 사면 된다. 실생활에서 이 방식은 납땜이 필요 없고, 꽂기만 하면 된다. 다음 시간에는 memory map에 대하여 공부해보겠다. memory map이 궁금하다면 여기를 클릭 ! 더보기

728x90
반응형