본문 바로가기

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이 유지되고, 그 밑의 값은 변한다... 더보기
마이크로프로세서(13) 어셈블러 명령어2 어셈블러 명령어1 을 읽고 싶다면 여기를 클릭 ! 1. ADD r 1byte 명령어, opcode fetch read machine cycle r과 A를 더한 값을 A에 저장해라. -> ADD A 명령은 A + A의 결과값을 A에 저장하라는 의미이다. 2. ADI 8bits 2 byte 명령어, opcode fetch read + MEMR machine cycle 8bits(데이터)와 A를 더한 값을 A에 저장해라. +) ADD M 1byte 명령어, opcode fetch read + MEMR machine cycle M(16bits, 해당 주소)의 data와 A를 더한 값을 A에 저장해라. 3. ADC r 1byte 명령어, opcode fetch read machine cycle carry, r, .. 더보기
마이크로프로세서(12) 어셈블러 명령어 instruction cycle과 machine cycle의 차이점이 궁금하다면 여기를 클릭 어셈블러 명령어의 간단한 요약이 궁금하다면 여기를 클릭 ** r : 내부 register ** rp : register pair, 내부 register의 쌍 1. MOV r1, r2 1byte 명령어, opcode fetch read machine cycle 내부의 register끼리 서로 값을 바꿔라. -> r2를 r1으로 copy해라 (r2 : source, r1 : destination) 2. MVI r, 8bits 2byte 명령어, opcode fetch read + MEMR machine cycle 8bits(데이터)의 값을 r에 넣어라. 3. IN #port 2byte 명령어, opcode fetch.. 더보기
마이크로프로세서(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.. 더보기

728x90
반응형