지난 2019년 2학기 컴퓨터 구조라는 수업을 듣고 이런 수업이 있구나 하고 있을 때 쯤 중간고사를 쳤고, 중간고사를 치고 기말이 다가올 때 쯤 도저히 안되겠다는 생각을 하게 되었습니다. 그래서 마침 계절학기에 동일한 수업이 있었고, 2학기에 들었던 수업과는 달리 한국어로 된 수업이라는 것을 확인한 후에 수강신청을 하게 되었습니다. 중간고사 기간이 다 되었기도 했고, 2학년을 보내면서 공부를 하는 습관이 풀려버린 거 같아서 글로 정리를 해서 블로그에 포스팅을 하려고 합니다. 이제 블로그 꾸준히 쓰기 3일차 하기 인데 이 글은 아마 오늘 저녁 부터 쓰기 시작해서 내일 저녁 쯤에 글이 마무리 되지 않을까 싶습니다. 중간고사를 위해서 정리하는 거고 앞으로 또 볼일 있을거라고 생각해서 쓰는 것이니 꼼꼼하게 하나씩 적어나갈 예정입니다. 혹시 같은 과목을 듣는 분들이라면 도움이 되었으면 좋겠습니다.
1장 컴퓨터 시스템 개요
컴퓨터 시스템 구성: 컴퓨터 H/W + 시스템 S/W + 응용 S/W
컴퓨터의 기본 구조
입력 - [ 기억 + 연산 + 제어 ] - 출력으로 이루어진 이 다섯 가지가 "컴퓨터의 기본적인 기능"에 해당하며 [기억 + 연산 + 제어 ] 부분을 1 Chip 라고 하여서 이를 microprocessor라고 한다.
컴퓨터가 하는 일은 프로그램(사람이 만들어 놓은 목적을 위해 구성한 명령어)을 정해진 순서대로 신행 하여 준다.
- 필요한 데이터를 읽고 - READ
- 읽은 데이터들을 처리하고 - PROCESSING
- 처리한 결과들을 저장한다. - STORE
컴퓨터는 기본적으로 CPU, 기억장치, 입출력장치 등으로 이루어져 있다.
- CPU(central processing unit) : p/g 실행과 data 처를 담당한다. (프로세서에 해당한다) =>컴퓨터의 특성과 성능의 대부분을 결정한다. 그래서 CPU의 속도가 곧 컴퓨터의 처리속도라고 볼 수 있다.
- 기억장치(memory or storage device) : p/g과 data 저장을 맡는다. 분류로는 주기억 장치와 보조저장 장치로 나눠진다. (주기억장치(RAM) : CPU 가까이에 있음(메인보드 위에 함께 올라가게 된다.)+고속+가격 UP+면적 UP+저장용량에 한계가 있음+휘발성 /보조저장장치(HDD등) : 주변장치+저속+가격 DOWN+저장밀도 UP+비휘발성+직접 접근 X(제어기를 통해서 접근을 하게 된다.))
- 입출력 장치(input/output device, I/O) : 사용자와 컴퓨터 간의 대화를 위한 도구로 주변장치와 CPU를 연결, 각 장치를 위한 별도의 제어기가 필요(별도의 드라이브를 의미한다).
정보의 표현과 저장
- 컴퓨터가 받아들이고 처리하는 정보의 종류 : p/g 코드와 data => 여기서 정보는 이진수 - bit들의 조합으로써 표현되어진다.
- 일반적으로 프로그램은 인간이 알아볼 수 있는 고급언어(C,python)등으로 작성되어진다. => 이러한 프로그램은 영문자와 숫자들로 되어 있어서 사용자는 알아보지만, 컴퓨터는 이해하지 못한다. => 컴파일러 : 고급 언어를 컴퓨터가 알아볼 수 있는 기계어로 바꾸어 주는 S/W
*고급언어들은 일반적으로 거의 동일하게 돌아가지만, 기계어의 경우에는 CPU 마다 서로 다르다. 왜냐하면 CPU의 내부구조(회로구조)에 따라 그 하드웨어가 이해할 수 있는 언어가 달라져서 그렇다.
- 어셈블리어 : 고급언어와 기계어 사이에 존재하는 각 CPU의 고유 언어
- 니모닉스(mnemonics) : 명령어가 지정하는 동작을 나타내는 간략화된 기호. (LOAD), 어셈블리 명령어는 CPU가 수행할 동작과 처리할 데이터가 저장된 위치도 정확히 지정하고, 컴퓨터의 내부구조와 밀접하기 때문에 사용자는 내부구조를 이해한 후에 프로그래밍 해야한다.
- 어셈블러 : 어셈블리어를 기계어로 번역해주는 S/W
- 어셈블리 명령어는 bit의 개수와 용도 및 주소 지정 방식에 따라 다양하게 구성가능 => 이와 같은 bit들의 구성을 명령어 형식(instruction format)이라고 함. -> 명령어의 bit 수, 용도, 필드 구성방법을 지정하여주는 방식
- 단어(WORD) : CPU에 의해 한번에 처리되어지는 bit들의 그룹 = CPU의 하드웨어 구조에 따라서 8/16/32/64 bit 등으로 다양한다.
시스템 구성
시스템 버스 : CPU와 다른 요소들 사이에 정보를 교환하는 통로
- 주소 버스 : CPU에서 주소를 전송하는 신호선들의 집합으로, 주소선의 폭은 기억장치의 용량을 결정 (단방향성) -> 주소 저장?
- 데이터 버스 : 데이터를 전송하는 신호선들의 집합으로, 데이터 버스의 폭은 한 번에 전송 가능한 데이터의 비트수를 나타낸다(양방향성).
- 제어 버스 : 시스템 요소들의 동작을 제어하기 위한 신호선들의 집합, EX) 기억장치의 읽기/쓰기, I/O의 읽기/쓰기
액세스 : CPU가 데이터를 기억장치의 특정장소에 저장하거나 저장된 내용을 읽는 동작. = 액세스 되는 방식에 따라 기억장치는 여러 가지로 분류되어짐
[EX] RAM을 사용하게 된다면?
- 데이터를 읽을 때 필요한 정보 : 주소, 읽기 신호
- 데이터를 저장하려는 경우 : 주소, 데이터, 쓰기 신호 -> CPU와 기억장치간에는 그런 정보들의 전송 통로인 주소/데이터/제어 신호 선들이 접속
- 기억장치 쓰기 시간 : 주소와 데이터를 보낸 순간 부터. 저장 완료 까지의 시간
- 기억장치 읽기 시간 : 주소를 보낸 순간 부터 읽기 동작 완료 까지의 시간
= 지연시간은 주소 해독과 기억장치에서 데이터 인출 시간을 합한 시간임
(2020/1/6 - 중간 공부 하면서 업데이트)
2장 CPU의 구조와 기능
3장 컴퓨터산술과 논리연산
'Experience' 카테고리의 다른 글
WebOS Overview (0) | 2023.05.11 |
---|---|
[GDSC] 서울 강연 들으러가기 (2) | 2023.03.14 |
사서 공부할 책 (0) | 2021.03.03 |
vs code 확장 프로그램 + git bash 사용 (0) | 2020.05.16 |