복습하는 차원에서 공부를 다시 시작한다.
따라서 기본적인 것은 후딱 넘어가거나 언급하지 않을 것이고
왠만하면 연습문제 풀이를 올릴 것 같다.
내 공부를 위해 하는 것이니 얼른 해서 학위 나오기 전에 완벽히 복습해놔야지!
복습하는 차원에서 공부를 다시 시작한다.
따라서 기본적인 것은 후딱 넘어가거나 언급하지 않을 것이고
왠만하면 연습문제 풀이를 올릴 것 같다.
내 공부를 위해 하는 것이니 얼른 해서 학위 나오기 전에 완벽히 복습해놔야지!
오.
후기는 쓸게 진짜 없다
나 이거 두시간 보고 들어갔다.
독학사 시험 특성상(아님 내가 원서접수를 잘못했는지)
한 교시에 두 과목을 칠 수 있고
나는 한 교시에 한 과목만 응시해서 총 100분 수험 시간에 50분 치고
나와서 교정에 앉아 있어야 했다.ㅜㅜㅜㅜㅜ
집도 고사장이랑 더럽게 멀어서 ㅜ 혼자 운동장 위에 있는 관중석? 같은데 앉아 있으니
하나 둘 나와 앉아 공부하더라..
여튼 그렇게 슬프게 매 교시동안 50분을 나와서 있으니
당연하게도 점심시간을 포함해 엄청 시간이 남았다.
전날 컴퓨터시스템구조를 1회독하고 문제집 푸는걸 완료한 터라
너무 졸려서 ㅜㅜ(나이 먹으니 옛날처럼 밤도 못 새겠다)
자고 에이 몰라 떨어지면 한 학기 수업 더 듣자 하는 마음으로
간거였다.
그래도 혹시나 하는 마음에 방통대 프로그래밍언어론 책을 사면 주는 워크북을 가지고 갔다.
쉬는 시간에 앉아서 그거 한자 보다가 다음 시험 요약본 보고 하다가
점심시간 + 50분 = 2시간 20분정도의 시간동안 아 그중 15분정도는 오미가미 시간으로 쓰고(고사장이 5층이였다)
2시간을 밖에 쓸쓸히 앉아서 ㅜㅜ 봤다
기본 언어 역사, 구문론, 의미론 등으로 나뉘고 객체지향에 대한 이야기가 나오는데
그 맥락위주로 봤다.
참 고맙게도, 책에서 본 듯한 것 다 풀고, 난 원래 전공 언어가 JAVA인지라
JAVA문제, C랑 JavaScript를 좀 아니까 그거 관련 문제를 다 풀고 나니
딱 14개더라. 정말 딱
14개에 각 항목 당 2.5점이므로 딱 커트라인 60점이었고
뭔가 아리까리한거 한두개 찍고 나머지 한줄 세울까 하다 여러줄 세웠더니
점수가 이렇다.
운이 좋았다고 할수 밖에 없어서
걍 무용담만 늘어놓고, 진정한 후기는 쓸수 없다.. 흡 ㅜㅜ
근데 왜 나는 한 교시에 한과목만 선택할 수 있고 나 제외 다른 애들은 두과목씩 쳤지? ㅜㅜ
아직도 모르겠다
[독학사][자료구조] 02 배열 (0) | 2020.07.12 |
---|---|
[독학사][자료구조] 01 기본 개념 (0) | 2020.07.12 |
독학사 컴퓨터시스템구조 합격 후기 (0) | 2020.06.24 |
독학사 자료구조 합격 후기 (0) | 2020.06.24 |
독학사 C프로그래밍 합격 후기 (0) | 2020.06.24 |
아.. 이거
까놓고 점수만 봐서 80점 나왔다
공부한 모든 것 중에 가장 힘들었던 과목..
논리회로를 공부를 안한 상태로 그냥 선택했다가
피본 과목이다.
조합회로나 순차회로가 회로도로 나오는 건 아닌데
처음 그 단원에 맞닥드리면 멘붕이 온다.
덕분에 논리회로 구조 책 한권 살까 하다가
인터넷을 뒤지니 마이스터고 학생들이 쓰는 수업자료가 있길래
그걸로 따로 봤다.
근데, 그거 말고는 솔직히 쉽다.
플립플롭 좀 자세히보고 나머진 2일? 정도 본거 같다.
그래서 한 1주일 공부한 것 같다.
당연 독학사 책 읽고, 기출문제집 사서 풀고 했다.
기출문제집보다 쉬은 문제도 많고, 어려운 문제도 있다.
아마 그 어려운 문제를 틀렸겠지.
진짜 본적 없는 내용이 나와서 ㅜㅜ 아 60점만 넘기면 되니까 ~ 하고 마음을 다독였다.
여튼 이 과목 선택하실 분들은 좀 고민해보시길 바란다.
[독학사][자료구조] 01 기본 개념 (0) | 2020.07.12 |
---|---|
독학사 프로그래밍 언어론 합격 후기 (0) | 2020.06.24 |
독학사 자료구조 합격 후기 (0) | 2020.06.24 |
독학사 C프로그래밍 합격 후기 (0) | 2020.06.24 |
[독학사][컴퓨터 시스템 구조] 09 시스템 버스 및 입ㆍ출력장치 (0) | 2020.05.01 |
와!!
자료구조 최고점 받았다
97.5
공교롭게도 학점은행제로 알고리즘을 듣고있어서 그런가
무지하게 쉬웠다
한 단원 단원이 양이 많아 페이지가 잘 안주는거 같은데..
은근 쉽다!
독학사 책으로만 공부했고, 대신 총 공부한 시간은 좀 긴 편이다.
2주? 다른 과목 다 같이 본걸로 해서 2주정도 본 것 같다
자잘한 것들이 나온다
뭐 원형리스트의 각 노드의 위치가 같아야 공백이네, 아니면 full이네
이런것을 묻는 거
딱 나왔고, 다행이 맞았다
다른 것들도 상당히 원론적이고
유사코드가 가끔 나오지만 우다다다 나오진 않는다
단지
시험시간이 50분이라.... 좀 허겁지겁 마킹하다 틀려서 ㅜㅜ 답안지 한개를 잘못 마킹한 채로 내버렸다
그게 틀린 것 같다 ㅜㅜ 속상해
그래도 어찌되었든 초고득점이라 생각한다.
좋았어
독학사 프로그래밍 언어론 합격 후기 (0) | 2020.06.24 |
---|---|
독학사 컴퓨터시스템구조 합격 후기 (0) | 2020.06.24 |
독학사 C프로그래밍 합격 후기 (0) | 2020.06.24 |
[독학사][컴퓨터 시스템 구조] 09 시스템 버스 및 입ㆍ출력장치 (0) | 2020.05.01 |
[독학사][컴퓨터 시스템 구조] 08 보조기억장치 (0) | 2020.05.01 |
합격했다!!!!!!!!!!!!!!!!!!!!!!!!!!
유일하게 독학사 카테고리중 모든 공부한 것을 올린 곳이기도 한데
최저점 받았다.
4과목을 1달정도 여유 두고(학점은행제 중간고사 기간이 끼여있어서.. 그거 공부하느라 1달밖에 시간이 없었다) 공부했는데
왠걸 C가 너무 쉬워서 훌렁 다 보고 다른거 공부했었는데
ㅜㅜㅜ힝
어려웠다 생각보다.
독학사 책에만 의존하지말고 진짜 실제로 보던 C책 가지고 갈걸..
원론적인 질문도 많았고, 코드 보고 해석하는 질문도 많았다.
보통 독학사 셤이 그러니까.
근데 이게 참 독학사 책만 보고 가서 그런지
오랜만에 보는 C언어라 기존에 알고 있던 것도 많이 잊은 상태였는지
문제가 여간 어렵지 않더라
진짜 어려웠어ㅜㅜㅜㅜㅜㅜ으앙
근데 찍은건 다 틀린거 같다.. 시무룩
셤 친지 꽤 지나서 자세한 내용은 기억이 안나는데
여튼 좀 마니 어렵다. 독학사 책으로는 안심할 난이도가 아니므로 주의해야 한다!!! ㅜㅜㅜ엉엉
여튼 득점은 67.5
아~ 아슬아슬하다 ㅜㅜㅜ
그치만 합격했다는거! ㅜㅜㅜ으앙
독학사 컴퓨터시스템구조 합격 후기 (0) | 2020.06.24 |
---|---|
독학사 자료구조 합격 후기 (0) | 2020.06.24 |
[독학사][컴퓨터 시스템 구조] 09 시스템 버스 및 입ㆍ출력장치 (0) | 2020.05.01 |
[독학사][컴퓨터 시스템 구조] 08 보조기억장치 (0) | 2020.05.01 |
[독학사][컴퓨터 시스템 구조] 01 컴퓨터 시스템 개요 (0) | 2020.05.01 |
l 버스 : 연결된 장치 간 이동 통로
l 시스템 버스 : 케이블과 커넥터로 구성된 전송통로. 데이터와 제어신호들이 흐름
제어 버스 : 제어, 타이밍, 조정 신호 전달
데이터 버스 : 프로세서, 메모리, 주변장치 간 실제 데이터 전달
주소 버스 : 전송되는 데이터의 메모리 위치 지정
l 버스는 클록의 제공 여부에 따라 동기식 버스 / 비동기식 버스로 구분
l 입∙출력장치는 사용자와 컴퓨터 간의 대화 통로 제공하는 장치
1절 시스템 버스
1. 개요
n 시스템 버스 : 공유 전송 매체
기억장치, 중앙처리장치, 입∙출력장치 간에 통신할 수 있도록 해주는 상호 연결 구조
n 전기적 연결, 하드웨어, 프로토콜, 소프트웨어, 버스 컨트롤러 모두 포함
n 저속 입∙출력장치가 연결되면 비용 많이 발생
n 오십 개 ~ 수백 개 개별 라인으로 구성, 전원 분배 라인 있을 수 있음
n 버스 트랜잭션
u 요청 : 주소와 명령어 발행
u 행동 : 데이터 전송
u 마스터 : 명령이나 주소를 발생시켜 버스의 트랜잭션 시작할 수 있는 버스 요청 신호 생성 가능
u 슬레이브 : 버스에 대한 요청 권한이 없어 수동적으로 대응하는 장치
n 버스 분류 / 차별화 설계 요소
u 버스 유형, 전용 버스 라인, 주소 유효 제어선을 사용해서 같은 회선에 주소와 데이터 정보 전달하는 멀티 플렉스 버스 고려할 수 있음
2. 데이터 버스
n 시스템 모듈 간 데이터를 전송하는 양방향 통로 제공
n 32개 이상 수백 개의 선들로 구성
n 선의 개수 = 데이터 버스 폭! (전체 시스템 성능 결정)
o 전송 용량(대역폭)
o 버스 사이클 완료하는 데 몇 개의 사이클이 필요할 수 있음
o 속도 : 버스 처리량! 바이트/초 로 표시
o 버스 폭이 넓을수록 처리량 커짐
n 버스 처리 지연 : 데이터 전송을 준비하기 위해 필요한 시간
o 영구적인 버스 마스터가 있는 시스템에서는 처리 지연이 매우 작음
o 데이터 전송을 요구하는 장치들이 버스 접근을 승인하는 중재 매커니즘이 필요한 복잡한 시스템에서는 지연시간 길어짐
3. 주소 버스
1) 개요
u 단방향으로 주소 지정만 함. 데이터 버스에 실어야 할 주소 지정
u 버스 폭 : 시스템의 최대 메모리 용량(주소공간)을 결정함
u 입∙출력 포트 지정할 때도 사용
u 상위 비트는 버스의 특정 모듈 선택 / 하위 비트는 모듈 내 메모리 주소 또는 입∙출력포트 선택
u 데이터 전송 통제하는 버스 마스터는 데이터에 대한 주소를 제공해야 함
u 데이터 버스와 병렬로 작용하는 주소 버스 제공
일부 시스템은 주소/데이터 통합 버스 제공(멀티플렉스로) -> 시분할
o 멀티 플렉스 주소/ 버스
같은 선으로 주소와 버스를 멀티플렉싱 함
전송 경로상 고속 전자 스위치인 멀티플렉서와 디멀티플렉서 필요
기존 버스보다 속도 느리고 수정 어려움
2) 버스트 전송
u 각가의 데이터를 연속적으로 기억장치 주소로 전달
u 멀티플렉스 주소버스 방식의 효율성이 향상될 수 있음
u 캐시 메모리 시스템 지원하기 위해 사용됨
캐시 한 라인이 메모리에서 로드 될 때 첫 번째 워드 주소가 메모리로 전송
메모리는 지정된 주소의 데이터를 제공하고 계속해서 다음 주소의 워드를 제공함
u 각 데이터를 전송하는데 필요한 단계를 거치지 않고 반복하여 처리 -> 효율성 증가
연속적인 주소를 메모리에 생성할 수 있음
u 데이터 추가 주소 없이 송신!
4. 제어 버스
1) 개요
u 단방향으로 동작
u 데이터선과 주소선의 사용과 접근 제어
u CPU와 기억장치 간 명령과 시간 정보 전달
u 시간 신호 : 데이터와 주소 정보의 유효성 나타냄
u 명령 신호 : 실행할 연산 지정
u 데이터 방향 신호
u 데이터 유효성 신호(DAV) : 1이면 읽기 실행, 0이면 쓰기 실행
읽기 사이클 동안 데이터는 버스 슬레이브에서 버스 마스터로 흐름
쓰기 사이클 동안 데이터는 버스 마스터에서 버스 슬레이브로 흐름
u 일부 시스템은 읽기와 쓰기 신호 통합하여 갖지 않고 별도로 분리해 가짐
READ, WRITE 신호 유지하면 읽기 활성화 쓰기 활성화 버스 프리 3가지 상태 표현 가능
u DAV(유효성 신호)는 버스 마스터에 의해 신호 발생되어 전송 일어나고 있음을 나타냄
2) 제어신호의 종류
(1) 쓰기 신호 : 데이터 버스 내용이 주소에 저장
(2) 읽기 신호 : 주소의 내용이 데이터 버스에 실림
(3) 입∙출력 쓰기 신호 : 지정된 입∙출력 포트로 버스에 실린 데이터 출력
(4) 입∙출력 읽기 신호 : 지정된 입∙출력 포트로부터 데이터가 버스에 실림
(5) 클록 신호 : 동작 동기화
(6) 리셋 신호 : 모든 모듈 초기화
(7) 전송 ACK 신호 : 데이터가 버스에 실렸거나 버스로부터 다른 곳으로 전달되었음을 나타냄
(8) 버스 요청 신호 : 모듈이 버스의 사용권 얻는데 필요한 신호
(9) 버스 승인 신호 : 모듈의 요청이 버스 사용권 승인 받았음을 나타내는 신호
(10) 인터럽트 요청 신호 : 외부에서 인터럽트 발생했음을 알림
(11) 인터럽트 ACK 신호 : 요청한 인터럽트 승인
5. 시스템 버스 동작
1) 동기식 버스
u 클록이 필요한 버스
u 버스 상에 있는 모든 장치가 동일한 클록 속도에 맞춰 동작
u 클록의 주기보다 짧은 주기의 버스 동작은 클록이 완료될 때 까지 대기 -> 시간낭비
u 제어선은 규칙적인 동일한 주기로 1, 0 번갈아 전달하는 클록선 포함함
클록이 1 -> 0으로 변화하는 것 : 클록 사이클 / 버스 사이클 -> 클록 슬롯
클록 사이클이 시작되면 모든 이벤트 동작
이벤트는 하나의 클록 사이클을 점유
2) 비동기식 버스
u 클록을 사용하지 않고 마스터-슬레이브 방식으로 동작
u 버스 트랜잭션 실행 위해 핸드셰이킹 사용
u 핸드셰이킹 : MSYN, SSYN 두 가지 신호 사용
u 회로 복잡해짐
동기식 버스 |
비동기식 버스 |
클록으로 동작 – 기반의 프로토콜과 시간 기반의 제어선 |
클록 없음 |
클록 왜곡 때문에 길게 구성 X |
클롤 왜곡 걱정X 길이 제한 없음 |
버스상 모든 장치는 동일 클록 속도 적용 |
핸드셰이킹 프로토콜 사용 |
구형 쉽고 로직 간단 |
버스 트랜잭션 관리하기 위해 별도의 제어선과 로직 필요 |
속도 빠름 |
속도 빠르지 않음 |
클록 왜곡 : 클록의 시간적 지연에 의한 문제
6. 시스템 버스의 데이터 전송
1) 프로그램에 의한 입∙출력방식
u CPU가 직접 입∙출력에 대해 제어
u 상태 레지스터 검사할 별도의 프로그램 필요
u 플래그 검사한 결과에 따라서 읽기 or 쓰기 명령에 의해 데이터 전송
u CPU 경유해서 데이터 전송 -> CPU시간 낭비하게 됨
2) 인터럽트에 의한 입∙출력방식
u CPU가 상태 레지스터 검사 X
u 데이터 전송 준비 되면 인터페이스가 인터럽트 이용해 데이터 전송
u 인터럽트 요청하면 현재 실행 중인 프로그램 중단 -> 입∙출력 전송 시작
u 인터럽트 발생하면 복귀 주소 스택에 저장하고 서비스할 루틴으로 분기
u 분기 주소 : 벡터 인터럽트 방식 / 비벡터 인터럽트 방식
3) DMA에 의한 입∙출력방식
u 입∙출력장치와 기억장치가 직접 데이터 전송
u DMA라는 하드웨어를 버스에 설치
u 입∙출력하는 동안 CPU로부터 DMA가 모든 권한 위임 받는 방식
u DMA가 CPU 개입 없이 기억장치와 직접 데이터 전송
2절 버스 중재
l 프로세서와 DMA 컨트롤러 또는 두 개의 DMA 컨트롤러가 주 메모리에 액세스 하려고 동시에 버스 요청할 경우 충돌 발행 -> 중재 절차 필요
l 버스 마스터 : 주어진 시간에 버스에서 데이터 전송 초기화 할 수 있는 장치
l 다음 장치가 버스 마스터로부터 버스에 대한 액세스 얻도록 우선순위 시스템 설정해 다양한 장치의 요구하는 과정
1. 중앙집중식 중재 방식 : 하나의 버스 중재기가 중재
1) 데이지 체인 방식
u BG신호! 데이지 체인 방식! 모든 DMA 컨트롤러에 연결됨
u BB(버스 비지!) 신호 1 이면 DMA 컨트롤러 제어권 획득 / 0이면 버스 사용 중
u 동일한 버스 요청선, 버스 승인선, 버스 사용선 사용
u 하나의 중재선에 직렬로 연결, 중재기에 가장 가까운 장치의 우선순위 높게 할당
u 직렬 중재 방식
(1) 모든 마스터는 동일한 버스 요청BR선 사용
(2) 버스 중재기 -> 사용 가능할 경우 버스 승인 BG 신호를 해당 마스터에 보냄
(3) 버스 사용 중이면 BB 0, 버스 사용 끝나면 BB 1
2) 폴링 방식
u 중재기가 마스터에게 버스 사용여부를 주기적으로 체크하는 방식
u 중재기와 마스터 간 별도의 폴링 주소선이 있음
주소선 개수 ∝ 시스템에 연결된 마스터 개수
주소선 n이면 마스터 수는
u BR 신호 들어오면 중재기가 마스터 주소 순차적으로 생성해서 하나씩 버스 사용할 지 체크
u 한다 하면 BB 0 하고 BG 주고 뭐 그런거
u 속도가 좀 느리고 하드웨어 구성 방식과 소프트웨어 구성 방식이 있음
3) 독립 방식
u 중재기와 마스터 간에 별도의 독립된 버스 요청선 버스 승인선 있음
u BB선 : 중재기와 모든 마스터 간에 공통으로 사용
u 중재기 안에 디코더가 가장 높은 순위 선택-> 버스 승인 신호 발생 -> 사용 가능
4) 직렬 중재 방식과 병렬 중재 방식
u 직렬 : BG BR선 한 개
마스터 순서에 의해 우선순위 결정
u 병렬 : 버스에 연결된 마스터들이 모두 독립적인 BR, BG선 가짐
마스터 개수만큼 BR BG선 필요
2. 분산형 중재 방식
n 버스 마스터가 별도의 중재기 가지고 있는 방식
n 보스 중재 동작은 각 버스 마스터의 버스 중재기에 의해 이루어짐
n 신뢰성 우수
n 장애 일으킨 중재기 찾는 방법이 복잡, 중재기 한 개의 장애가 시스템에 문제가 됨
3절 입∙출력장치의 제어
1. 개요
n 서로의 특성 파악해 장애 없는 데이터 전송 수행해야 함
n 입∙출력 장비와 기타 주변 장치 간 데이터나 신호 전송 제어하고 적절한 동작 실행할 인터페이스 필요
2. 입∙출력장치의 구성요소
1) 입∙출력장치
2) 입∙출력 제어장치
u 입∙출력장치와 입∙출력 인터페이스 사이의 상호작용 제어
3) 입∙출력장치 인터페이스
u CPU와 입∙출력장치 간 정보 전송 담장
u 신호 변환, 동기 절차 및 제어, 데이터의 형식 변환 등
4) 입∙출력 제어기
u 마더 보드 내에 설치
u CPU 기능 갖는 입∙출력 전용 처리기
u DMA 제어기, 입∙출력 프로세서(IOP), 채널 제어기
3. 입∙출력장치 인터페이스의 목적
n CPU와 주변장치 간 차이점 해결 -> 링크
1) 신호 값 변경
2) 속도 차이에 의한 동기과 과정 필요
3) 주변장치의 데이터 코드는 CPU나 기억장치의 워드가 아님
4) CPU에 연결된 다른 주변장치들 동작에 방해되지 않도록 제어
4절 입∙출력장치의 주소지정
l 어떤 장비와 통신을 하기 위해선 프로세서가 주소선에 장비 주소 올려야 함
l 각 인터페이스는 입∙출력 버스에서 받은 주소와 제어를 해독 -> 주변장치의 제어장치로 신호 보냄
l 각 주변장치는 자기만의 제어장치를 가지고 있어!!
1. 입∙출력 명령
1) 제어 명령
2) 상태 명령 : 여러 상태 조건 테스트에 사용. 장애 테스트 -> 결과 상태 레지스터에 표시
3) 출력 명령 : 데이터 출력에 관한 명령
4) 입력 명령 : 데이터의 입력에 관한 명령. 출력 명령과 반대
2. 입∙출력 버스와 기억장치 버스
n 입∙출력장치와 통신하기 위해선 CPU는 기억장치하고도 통신해야 함
n 컴퓨터 버스가 기억장치, CPU와 통신하는 방법!
(1) 전용 프로세서(IOP) 사용
o 입∙출력 위한 전용 버스 구성하는 방법
o 컴퓨터가 별도의 입∙출력 프로세서IOP를 제공
o IOP의 목적 : 외부 장치와 내부 기억장치 간 정보 전송을 위한 독립된 경로 제공
o DMA와 차이점 : 저장된 입∙출력 프로그램을 실행할 수 있는 기능이 있음
o 입∙출력 프로그램 실행은 CPU명령에 의해 시작-> IOP번호, 입∙출력장치 번호, 입∙출력 프로그램 주소 등을 명령이 포함
(2) 분리형 입∙출력 방법
o 데이터와 주소버스는 공통으로 사용.
o 읽기 쓰기 위한 제어버스만 분리
o 데이터 주소는 주소선에 배치, 읽기쓰기 제어는 분리된 제어선에 설정
o 기억장치와 입∙출력장치 주소 공간 분리해서 사용. -> 입∙출력 주소 : 포트
o 기억장치와 입∙출력장치들이 별도의 명령어 사용
(3) 기억 사상 입∙출력 방법
o 기억장치나 입∙출력장치 위해 동일한 명령어 사용
o 기억장치 주소 용량 감소…
분리형 입∙출력 방식 |
기억장치 사상 입∙출력 방식 |
기억장치와 입∙출력장치가 서로 다른 주소 공간 가짐 |
동일한 주소 공간 사용 |
모드 주소는 기억장치에 의해 사용됨 |
입∙출력 주소 공간 때문에 기억장치 공간 감소 |
서로 다른 명령어 사용 |
동일한 명령어 사용 |
입∙출력 주소 : 포트 |
일반적인 기억장치 주소와 같음 |
별도 버스 사용 -> 효율적 |
효율성 떨어짐 |
버스 많아서 크기 커짐 |
크기 작음 |
별도의 로직 떄문에 복잡 |
로직 간단 |
5절 입∙출력 방식의 종류
1. 인터럽트 이용하지 않는 방식
n 드라이버 소프트웨어 제어하에 CPU의 레지스터 또는 메모리에 액세스 하기 위해 시작하는 데이터 전송
n CPU는 명령어 실행한 후 입∙출력작업이 완료될 때 까지 대기
n CPU가 데이터 수신 또는 전송 위해 준비된 입∙출력장치에 대해 오랜 시간 대기
è DMA, 인터럽트 방식 선택
n 폴링 : CPU가 대기하는 동안 입∙출력 모듈을 계속 확인
n 성능 수준 저하
n 동작 순서
(1) 장치에 의한 동작
o 데이터를 입∙출력 버스에 배치, 데이터 유효 라인 활성화
(2) 인터페이스에 의한 동작
o 바이트를 레지스터에 받아들이고 데이터 허용선 활성화 -> 상태비트 F!
o 데이터 허용선이 인터페이스에 의해 비활성화될 때까지 다른 바이트 전송 안함 -> 핸드셰이크
o 플래그 클리어 되먼 인터페이스는 데이터 허용선 비활성화 -> 다음 데이터 바이트 전송 가능
(3) 프로그램에 의한 동작
o 상태 레지스터 읽음
1이면 데이터 레지스터 읽고 0이면 상태 레지스터를 읽음;;
o 데이터 레지스터 읽으면 플래그 비트가 0으로 클리어 됨
2. 인터럽트 이용하는 방식
n 인터페이스 장치가 데이터 전송 준비가 되면 인터럽트 요청 생성해 CPU로 보냄
n CPU는 인터럽트 요청 신호 받으면 실행 중 프로그램 중단, 서비스 프로그램으로 분기
n 완료 후 다시 수행한 작업으로 복귀
n 폴링 / 데이지 체인
1) 인터럽트 이용한 동작 과정
(1) 동작 절차
o CPU 인터럽트 신호 인지 -> PC주소 스택에 저장, 해당 인터럽트 루틴ISR로 분기
o 입∙출력 데이터 전송 처리
o 스택에 저장된 주소를 PC로 전달 -> 원래 주소로 복귀 -> 다시 실행
(2) 분기 주소 선택 방법
① 벡터 인터럽트 방식
CPU가 인터럽트 서비스 루틴의 주소를 미리 알고 있음
소프트웨어적 처리 방식
인터럽트 필요한 장비가 장비의 벡터값을 데이터 버스와 입∙출력 인터페이스 통해 CPU로 보냄
② 비벡터 인터럽트 방식
PC에 저장된 주소가 지정하는 하드웨어로 분기
항상 일정한 위치로 분기 (장치 독립적인 하드웨어로 코드화 된 ISR로 분기)
(3) 인터럽트 종류
① 외부 인터럽트 : 정전, 전원 공급 등 하드웨어적 장애
정전! 가장 먼저 처리해야 함
② 내부 인터럽트 : 프로그램 자체의 오류에 의해 발생
불법적 명령이나 데이터 사용이 문제. 매번 같은 위치에서 발생
③ 소프트웨어 인터럽트 : 프로그램 운영자에 의해 강제로 실행 “감시자 호출”
(4) 인터럽트 우선순위
① 정전 / 전원 이상 인터럽트
② 출력장치 인터럽트
③ 내부 인터럽트
④ 소프트웨어 인터럽트
2) 폴링 방식
u 소프트웨어적 방식
u CPU가 입∙출력장치 지속적으로 확인
u 인터럽트 발생하면 우선순위에 따라 각 장치를 순차적으로 검사하여 해당 서비스루틴 실행
u 해당 작업 종료 전까지 아무 일도 못함
3) 직렬 우선순위 인터럽트 방식
u 하드웨어 우선순위 방식 사용
u 장비 동작 속도 빠르게 하기 위해 각 장비는 인터럽트 벡터가 있음
u 하드웨어 우선순위 인터럽트 장치에 의해 순서 결정
u 직렬, 병렬 다 가능
u 데이지 체인 방식은 인터럽트 회선을 직렬로 연결해 우선순위 결정-> CPU에 전달
우선순위 높은 장치를 먼저 배열함
u 첫 장비의 PI 통해 INTACK 신호 보냄 -> 인터럽트 요청 장치면 VAD 신호 보냄
u PO 신호 0으로 해서 신호 닫음
u 아니면 PO 거쳐 다음 장치로 넘어가고 PO는 1
u 즉 PI = 1, PO = 0 인 장치가 인터럽트 요청한 것
4) 병렬 우선순위 인터럽트 방식
u 인터럽트 레지스터 사용 -> 레지스터 비트 위치에 따라 우선순위 결정
u 마스크 레지스터 : 우선순위 낮은 장치 사용하지 않도록 설정하는 데 사용
u 해당 인터럽트 비트와 마스크 비트가 AND연산 되어 우선순위 인코더에 적용
u 우선순위 인코더는 2비트 벡터주소 생성
u 다른 출력은 인터럽트 상태 플립플롭 설정함
3. DMA를 이용한 입∙출력 방식
1) 개요
u 입∙출력장치와 기억장치가 직접 데이터 전송하도록 해 전송속도 개선, CPU 효율적 사용
u 기억장치와 입∙출력장치가 직접 전송 실행
u DMA가 데이터 전송하는 동안 CPU는 기억장치의 제어로부터 자유롭게 됨
u 버스 요청BR, 버스 승인BG 신호로 제어
u 실행 끝내고 주소버스, 데이터버스, 제어버스를 고전압 상태로 설정 -> 출력 중단 되었다는 의미
2) DMA 전송
(1) 대량 전송 : 한 블록씩 연속적으로 적용
DMA 제어기는 메모리 버스의 마스터가 됨
(2) 사이클 스틸링 : 한 번에 한 워드씩만 데이터 전송하고 버스 제어를 CPU에게 반환
3) DMA 제어기 구조
u CPU와 입∙출력장치 간 데이터 전송을 위한 인터페이스 회로, 주소 레지스터, 워드 카운트 레지스터, 제어 레지스터 등으로 구성
u 주소 레지스터의 기억장치의 주소를 이용하여 기억장치와 직접 통신
u 워드 카운트 레지스터는 전송할 워드 개수 표시 -> 전송되고 나면 1씩 감소
u 제어 레지스터 : 전송 방식 표시
u 주소 레지스터는 워드 전송하면 1씩 증가
u 데이터 버스와 제어선을 통해 CPU와 통신
u DMA 내의 레지스터는 DS(DMA SELECT) 와 RS(REGISTER SELECT) 입력을 1로 설정하여 선택
u RD, WR 입력은 양방향
u BG = 0이면 CPU는 DMA 레지스터에서 읽거나 쓰기 위해 DMA 레지스터와 통신
u BG = 1이면 DMA는 주소버스에 직접 주소를 지정해 메모리와 직접 통신. RD WR 제어 `활성화
u DMA 전송 실행
① CPU가 주소와 데이터 버스 통해 DMA와 통신 함
② DMA는 자신이 주소 가지고 있고, RS와 DS선 활성화
③ BG = 0 -> RD WR은 레지스터와 통신하는 입력선 (CPU)
BG = 1 -> RD WR은 기억장치에서 읽거나 쓰는 출력선 (메모리)
4) DMA 초기화 내용
u CPU가 입∙출력 명령으로 DMA 제어기 관련 레지스터 초기화함
① 입∙출력할 기억장치 블록의 시작 주소 담고 있는 주소 레지스터
② 기억장치 블록의 워드 개수 표시하는 카운트 레지스터
③ 읽기나 쓰기 전송모드 지정하는 제어 레지스터
④ DMA 전송 시작신호
초기화 함
4. 채널에 의한 입∙출력 방식
1) 개요
u IOP라고 불리는 채널!
u IOP는 스스로 명령어 인출하고 실행할 수 있음
u CPU는 데이터 처리, IOP는 주변장치와 기억장치 간 데이터 전송 경로 제공
u 데이터는 하나의 메모리 사이클을 이용해 IOP에서 기억장치로 전송 됨
u 명령(커맨드) : IOP가 기억장치에서 읽은 명령어(CPU에서 읽은 것과 구분)
2) 채널의 종류
(1) 셀렉트 채널 : 한 번에 하나의 입∙출력 동작 처리. 고속장치에 이용
(2) 멀티플렉서 채널 : 동시에 여러 입∙출력장치 시분할. 저속장치에 사용
한 번에 한 바이트
(3) 블록 멀티플렉서 채널 : 셀렉트 채널 + 멀티플렉서 채널 -> 블록단위로 전홍 다수 고속장치
속도 : 셀렉트 > 블록 > 멀티플렉서
독학사 자료구조 합격 후기 (0) | 2020.06.24 |
---|---|
독학사 C프로그래밍 합격 후기 (0) | 2020.06.24 |
[독학사][컴퓨터 시스템 구조] 08 보조기억장치 (0) | 2020.05.01 |
[독학사][컴퓨터 시스템 구조] 01 컴퓨터 시스템 개요 (0) | 2020.05.01 |
[독학사][C프로그래밍] 08 파일처리함수 (0) | 2020.04.28 |