CS를 열심히 공부했다.
CPU는
트랜지스터 라고 하는 반도체로 만들어 졌음
cpu에는 수십억개의 트랜지스터가 들어있음
Mosfet 이라는 트렌지스터가 있는데 미세먼지보다 작음
모스펫들이 모여 많은 논리게이트를 이루고 연산을 수행하고 있음
암튼
컴터 본체를 열어 보면 여러가지가 판때기에 붙어있는데
그 판때기를 메인보드라고 함
메인보드에다가 이것저것 붙여서 우리가 쓰는 pc가 되는건데
가장 중요한 것은
저장 장치(하드디스크) / 메모리 / CPU 임
하드디스크에는 소프트웨어가 설치 되어있음 (소프트웨어를 저장해놨다고 하면 이해가 편함)
이 저장해논 소프트웨어를 사용하려면 CPU 님이 힘을 써주셔야 하는데
CPU의 속도에 비해서 하드디스크는 너무 느려서 서로 소통하지 않음
대신에 중간에 RAM이란게 있는데 RAM 이 CPU 와 하드디스크 사이에서 소통을 담당함
하드에서 프로그램을 실행하면 그게 램으로 이동하고 CPU 는 그 데이터를 가져옴
하지만 ram도 cpu에 비하면 많이 느리기 때문에 cpu 내부나 근처에 캐시 메모리를 만들어 그곳에 데이터를 저장함
캐시메모리는 램에 비하면 용량이 작음 그래서 중요하다고 판단되는 데이터만 저장해서 사용
암튼 cpu는 캐시메모리에 데이터를 요청하고 읽는다.
캐시메모리에 데이터가 없으면 램에있는 데이터를 읽게됨
캐시메모리 와 램 둘을 싸잡아서 메모리라고 표현함
컴퓨터에 있는 기억장치는
하드
램
캐시
레지스터가 있음
레지스터는 cpu내부에서 데이터를 일시적으로 저장하는 장치로 속도가 가장 빠름
속도는
SSD < RAM < CASHE < REGISTER
속도가 빠르면 좋지만 오른쪽으로 갈수록 용량이 작고 가격도 비싸짐
레지스터는 종류가 있음
-프로그램 카운터 다음에 수행할 메모리의 주소가 들어있음
-메모리 주소 레지스터 프로그램 카운터에서 수행할 주소를 넘겨받은 다음에 그 주소를 찾아가 데이터를 가져오는 역할을담당함
-메모리 버퍼 레지스터 : 메모리 주소 레지스터가 가져온 데이터나 명령들을 일시적으로 저장함 이 중에 명령은
명령어 레지스터(명령에 관한 데이터가 저장함) 한테 토스하고 연산은
누산기 레지스터 에게 보냄
누산기 레지스터는
연산의 결과 값이나 중간 값을 일시적으로 저장함
최종 결과는 메모리 버퍼 레지스터를 통해 메모리로 전송됨
제어장치
명령어 레지스터에 있는 명령어를 받아 해석하고 해석된 명령을 실행할 시스템에 각각 지시를 보내줌
ALU는 산술논리연산을 실행함
우리가 사용하는 프로그램은 C언어, 파이썬 같은 고급 프래그래밍 언어로 코딩 됨
코딩된 언어는 컴파일러를 통해 CPU가 실행할 수 있는 어셈블리 언어로 바뀜
이 어셈블리어는 어셈블러를 통해 약속된 규칙에 따라 0과 1로 이루어진 기계어로 바뀌게 됨
예를들어
C= A+B / 파이썬 -> LOAD [10] ADD[11] STORE /어셈블리어 -> 100 110 001
우리가 사용하는 소프트웨어는 명령어와 데이터의 집합체
기계어는 메모리에 저장됨
CPU는 메모리에 저장된 데이터를 인출해서 해석하고 실행하고 저장 함
CPU는 각 단계에서도 세분화 함
세분화된 각각의 프로세스를 스레드 라고 함
코어하나에 여러개의 쓰레드가 실행되면 속도가 빨라지게 됨
코어가 많아지면 속도가 더 빨라지게 됨
프로세서의 구조는 회사 마다 다른데
이 구조를 아키텍쳐 라고 하고 아키텍처 디자인은
펜티엄 샌디브릿지 하스웰 타이거레이크 등 다양한 형태로 진화 하고 있음
'개발 일지 > 개발 일지' 카테고리의 다른 글
내일배움캠프 Day 11 (0) | 2022.11.14 |
---|---|
내일배움캠프 Week 2 (0) | 2022.11.14 |
내일배움캠프 Day 9 (0) | 2022.11.11 |
내일배움캠프 Day 8 (0) | 2022.11.09 |
내일배움캠프 Day 7 (0) | 2022.11.08 |