카이스트를 본사로 운영하는 반도체설계교육센터에서 다양한 반도체설계에 관한 강의를 진행하고 있다.
아직 전공심화 과목을 수강하지 않았기 때문에 본격적인 하드웨어 설계 수업을 듣기에는 무리가 있어서 기본적인 반도체 구조에 관해서 공부하기 위해 이번 강의를 신청했다.
2학년 2학기때 컴퓨터 구조론 수업을 통해 기본적인 CPU의 구조에 대해서는 배웠지만 학교에서 배우는 내용 이외에 더 깊게 알아보고싶었다.
이번 강의는 포항공과대학교 이영주 교수님께서 (10:00 ~ 17:30)이틀동안 진행해 주셨다.
IT산업의 발전
오전동안은 지금까지의 IT산업 발전에 대해 설명하셨는데 단순히 시대흐름적으로 나열하는게 아니라 왜 이렇게 발전을 해왔는지 이유와 당의성에 대해 자세히 설명해주신 모습이 인상깊었다.
1980년대까지 PC는 개인이 갖기에는 어려운 제품이였다.
그러나 무어의 법칙에 따라서 반도체 프로세서는 해마다 2배의 성능향상을 이뤄내면서
IBM, 애플과같은 기업이 1990년대부터 개인PC를 제작하기 시작했다.
그렇게 1990년부터 2010년까지 컴퓨터의 대중화가 되면서 집집마다 1개씩의 컴퓨터가 자리잡게 되었다.
이 시절부터 컴퓨터 산업이 길을 잃었다. 90년대만 해도 cpu의 성능이 2배씩 늘어났지만 2000년대부터 성능폭이 줄어들게 되면서 사람들이 이전만큼 컴퓨터를 교체할 이유도, 새로 구매할 이유도 사라져버렸다.
2010년에 이런 시장의 변화를 준 기업이 바로 애플이다.
스티브잡스의 생각은 집집마다 컴퓨터가 있으니 더이상 PC로 매출을 올리기는 힘들다고 판단해서 새로운 플랫폼을 생각해 냈는데 그것이 바로 모바일이다. 즉, 휴대폰을 PC만큼으로 고성능으로 만들면 사람들의 구매욕구를 자극시킬 것이며 프로세서 또한 그동안 컴퓨터CPU가 발전을 해왔지만 모바일 CPU는 컴퓨터에 비해 낮았다.
따라서 2010년부터 2020년까지 스마트폰의 시대라고 해도 과언이 아닐정도로 스마트폰의 교체주기가 매우 짧았다.
이제 2022년, 스마트폰의 프로세서는 충분히 성능이 좋아졌으며 심지어 스마트폰 칩셋에 NPU라는 AI가속기까지 내장되었지만 사람들은 굳이 교체의 필요성을 느끼지 않아 스마트폰 시장도 포화상태가 나타났다.
이제 차세대 플랫폼이 무엇일지 아무도 모르는 상황이다. 태블릿시장도 예전에 비해 많이 발전해 왔지만 물리적인 크기와 휴대성이 생각보다 좋지 않아 아직까지 미지수이다. 요즘 한참 핫한 VR/AR/XR등과같은 메타버스가 될수도 있다고 생각한다.
통신시장의 발전
위에서 프로세서얘기만 했지만 프로세서의 성능만 좋아진다고 해결되는 일이 아니라 전체적인 통신도 플렛폼에 맞게 끊임없는 발전이 이어왔다.
첫번째로 가장 빠른 속도를 자랑하는 short links 즉 유선랜의 속도향상이 많이 발전했다. 작은범위로는 USB와같이 외부 I/O를 통해서 통신을 할 수 있었으며 넓게는 광통신 케이블을 통해서 장거리도 유선을 통해 매우 빠른 속도의 통신발전이 이루어 졌다.
두번째는 LAN, 근거리 무선랜이 있으며 대표적으로 WIFI가 있다. 와이파이도 세대를 거듭하면서 꾸준한 발전이 있으며 오늘날 WIFI 6까지 상용화되어 최대 10Gbps의 속도를 보인다.
세번째는 우리가 매일 스마트폰으로 사용하는 Cellular이다. 셀룰러는 기지국을 거쳐서 통신이 이루어지며 3G, LTE, 5G와같이 꾸준한 발전이 이루어 졌다.
위 내용 뿐만 아니라 IOT, 인공지능의 발전과 한계점에 대해서도 자세히 알게 되었다.
오후부터 본격적으로 임베디드 프로세서의 구조에 관한 강의가 시작됐다.
ISA
초반에는 기본적인 컴퓨터 구조의 ISA(Instruction Set Architecture : 명령어 집합체)에 관한 내용을 다뤘다.
ISA란 소프트웨어와 하드웨어의 소통 창구라고 생각하면 된다. sw개발자와 hw개발자가 최소한 서로 알아야 하는 구조에 대해 공유를 하며 이를 Programmer's Model이라고도 부른다.
이어서 Address Instructions를 배웠는데 이는 컴퓨터구조때 배운 명령어 집합과 동일한 내용이었다.
명령어마다 구조가 다르나 전체적으로 보면 1개의 opcode(연산자)와 나머지 operand(피연산자) 형식의
4,3,2,1,0명령어 구조가 있다.
여기서 주목해야 할 점은 4,3,2,1,0Instruction set으로 갈수록 명령어의 길이는 줄어들지만 갯수는 많아진다.
따라서 명령어의 길이가 줄어들수록 연산횟수는 많아지게 되며 어떤게 좋고 나쁘다고 할 수 없고 그때 수행하는 작업에 최적화된 set이 있다.
big endian, little endian
다음으로 중요한 개념은 big endian, little endian이 있다.
big endian : 낮은 주소값에 높은 값이 대입된다.
little endian : 낮은 주소값에 낮은 값이 대입된다
앞서 Instruction set을 배웠으니 이를 활용한 memory addressing mode를 살펴보자.
Addressing Modes(주소지정방식)
주소지정방식은 즉치, 직접, 간접, 레지스터, 레지스터간접, 변위, 상대 지정방식이 있으며 각각 메모리에 접근하는 방식이 전부 다르다. 프로그램을 작성하면 메모리의 주소값을 바로 아는 경우도 있지만 경우에 따라서는 직접 엑세스를 하지 못하는 경우가 있기 때문에 컴파일러가 그때 필요한 주소지정방식을 사용한다.
CISC vs RISC
CISC(Complex Instruction Set Conputer)
- 복잡한 명령어를 갖고 복잡한 연산을 수행한다.
- 심지어 간단한 연산을 하기 위해 복잡한 방법을 하는 모순되는 녀석.
- 호환성 좋음
- 주로 PC프로세서로 쓰임
RISC(Reduced Instruction Set Conputer)
- 간결한 명령어, 간단한 연산 수행
- 저전력 프로세서
- 주로 임베디드 프로세서로 쓰임
RISC-V 프로세서
현재 임베디드 프로세서의 절대강자는 ARM프로세서이다. 스마트폰도 전부 ARM아키택처를 사용하며 애플의 맥북, 아이맥까지 ARM으로 진입해서 조만간 ARM CPU를 채용한 PC도 많이 출시될 전망이다.
'연수 ⁄ 교육' 카테고리의 다른 글
[교육] 차량용 이더넷 통신 (0) | 2023.07.27 |
---|---|
[IDEC] Verilog HDL 기초 (0) | 2022.02.07 |
[IDEC] 임베디드 프로세서 구조의 이해 2일차(수료) (0) | 2022.01.15 |