CHAPTER4. 회로설계
- 논리연산을 조합하면 컴퓨터 칩들을 생성할 수 있음. 이를 회로설계라 함
- 회로의 추상화 : 회로의 계산과정을 사용자가 알 필요가 없기 때문에 입,출력 결과만을 알려줌
반도체칩의 내부는 보여지지 않는다
- 여러자리 숫자의 덧셈
- 한 자리 숫자 3개를 더할 수 있는 회로가 필요함 (올림수 이슈 때문)
- 덧셈회로는 n자리 숫자에 따라, 입력의 갯수만큼 출력의 갯수또한 회로 제작이 필요함
한 자리 덧셈 회로
|
half adder
|
올림있는 한 자리 덧셈 회로
|
full adder
|
CHAPTER5. CPU
- cpu : 중앙처리장치, 컴퓨터의 모든 기능을 동작시킴, 칩들로 구성됨
- CPU에 가까울수록 속도는 빠르나, 용량이 작음 (레지 > RAM > 레지스터 순)
- CUP는 하드디스크를 직접 활용하지 않음 (그 안의 RAM으로 복사한 뒤 RAM의 데이터를 활용하도록 명령함 )
- CPU에 가까울수록 속도는 빠르나, 용량이 작음 (레지 > RAM > 레지스터 순)
저장장치
|
|
|
외부 저장장치
|
하드디스크
|
RAM(코드영역+데이터영역)
|
내부 저장장치
|
레지스터(성능 좌우)
|
|
- 코드 실행 과정 : 머신 코드 각각이 cpu의 입력선에 전기신호로 전달됨 => 동작 실행
- 머신코드 : 개발자가 코드를 작성함 => 컴파일러나 인터프리터가 저수준언어(0,1구성)로 변환 => CPU에 전달하는 코드, cpu의 입력선 개수와 동일 개수 가짐 (1인 경우 전기가 통함, 0인 경우 전기가 통하지 않음)
- 인스트럭션 : CPU 동작을 유발하는 최소단위 = N자리 머신코드 한 줄
- 인스트럭션이 투입 되면 CPU는 직접 처리가능한 것은 처리 후 결과 RETURN & 다른 칩에 신호를 전달
- 저장, 불러오기 동작을 주로 실행함, 임시저장이 필수로 요구됨
- CPU에 연산 담기 : 기능따른 입력신호를 따라 기능을 선정하므로, 오퍼레이션 코드를 활용하여 기능을 추가함
- 오퍼레이션 코드 = 어떤 기능을 사용할지 알려주는 칩에 포함되는 신호
- (EX- 덧셈이 필요하면 0으로 OPCODE를 넣음, 뺄셈이 필요하면 1으로 OPCODE를 넣음)
- ALU = 다양 연산 OPCODE가 들어간 칩
- 오퍼레이션 코드 = 어떤 기능을 사용할지 알려주는 칩에 포함되는 신호
정해진 OPCODE
OPCODE의 종류와 의미
- 어셈블리어 : 저수준 언어, 머신코드를 보기 쉬운 언어로 변환함
CHAPTER5. 컴퓨터의 성능
- 성능 좌우 포인트 : 사이클 속도 + 한 사이클 당 일할 수 있는 양 + 코어 갯수
- Hz = 1초에 몇번이나 사이클을 반복하는지를 의미함
- 사이클(클럭)= 각 부품이 전기신호를 전달하는 것, 일정 시간간격으로 반복됨
- G = 10억의 약어
- EX : 3.GHz = 1초에 36억번 반복함 = 1초에 12억번 숫자 연산(=사이클)이 가능함
- CPI : 한 인스트럭션이 평균적으로 몇사이클로 완료되는지의 평균값 = 낮을수록 좋음
- IPS = 사이클 빠르기 속도 x IPC : 1초간 실행가능한 인스트럭션 개수
- IPC : 1개 사이클에 얼마나 많은 코드를 소화가능한지 고지함
- 듀얼코어 : CPU 한개 안에서 두개의 CPU가 따로 동작하게 만들어 사이클 스피드 보완
- 프로그램을 빠르게 실행하는 방법
- (1) 인스트럭션을 줄인다 = 실행코드(머신코드)를 줄인다
- 머신코드 길이 = 언어 + 알고리즘 + 컴파일러
- (1) 인스트럭션을 줄인다 = 실행코드(머신코드)를 줄인다
EX) C언어로 코드를 짜면 머신코드가 짧아지고 파이썬으로 하면 머신코드가 길어짐)
-
-
- 알고리즘을 간소화 한다 (동일 언어라도 머신코드 길이 차이 유발)
- 컴파일러의 수준에 따라 동일 언어라도 길이를 줄일 수 있음
-
-
- (2) 실행 속도를 늘린다 = CPU의 성능을 높인다
- 파이프라인을 통해 일을 효율적이게 동시에 진행
- 데이터 예측으로 캐시 메모리의 재활용성을 바탕하여 활용함
- 원칙들을 활용한 최적화 환경을 조성함
- (2) 실행 속도를 늘린다 = CPU의 성능을 높인다
- 무어의 법칙 : 반도체 밀도는 2년마다 2배씩 증가할 것이다. 다만, 증가가 거듭할수록 SIDE EFFECT들이 발생하며 현재는 받아들여지지 않는 법칙이됨
강의 종강 후기 :
너무 얕게 알고있던 지식을 기초까지 끌어올리게 해준 강의란 생각이 든다. 마지막 챕터의 사례 영상은 실제 이슈를 기반으로 구성하여 실용성 교육을 좋아하는 내게 흥미로운 느낌을 주었다.
다만, 비전공자로서 너무 깊게 알 필요가 없는 것들 (0000,0101등의 계산 문제 풀어보기..)등은 굳이
필요했나? 싶은 느낌...이 있다. 여튼 좋은 지식 잘 쌓았습니다! 하지만 복습안하면 절대 머리에 안남을듯
728x90
'관련 도서 및 지식 > 강의 및 인사이트' 카테고리의 다른 글
[ 개발자도구 ] 가볍게 개발자 도구 활용하기 - 저장 정보 상태 확인, 에러코드 확인 (0) | 2023.01.17 |
---|---|
[ 얄팍한 코딩사전 - 혼공얄코 ] 23~29강 : 데이터와 하드웨어 (0) | 2023.01.14 |
[ 아키텍쳐 ] 컴퓨터 아키텍쳐 : 컴퓨터 구조 이해하기 ~ CHAPTER 3 (0) | 2023.01.13 |
[ 얄팍한 코딩사전 - 혼공얄코 ] 14~22강 : 서버와 컴퓨터의 구조 (0) | 2022.12.17 |
[ 얄팍한 코딩사전 - 혼공얄코 ] 1-13강 : 서버와 언어 (0) | 2022.12.17 |