컴구조2

be ko·2021년 10월 6일
0
post-thumbnail

무어의 법칙 - 연마다 단일면적당 트랜지스터 수는 2배로 증가한다

컴퓨터 유닛이 증가할수록, 코어들끼리의 데이터 이동이 중요한 문제임

코어가 아무리 빨라도 걔네들끼리 데이터 이동이 느리면 파워 느림

(각 코어들은 라우터를 가짐)
이 라우터들이 코어들이 보낼 데이터를 패킷으로 만들어서 서로서로 주고받고 뭐 그러는거

컴포넌트 (모바일 기기도 마찬가지)들은 전부 다 어쨋든 라우터를 가지고, 걔네들 끼리 데이터 주고 받음 ㅇㅇ

추상화

(추상화(abstraction)는 복잡한 자료, 모듈, 시스템 등으로부터 핵심적인 개념 또는 기능을 간추려 내는 것을 말한다)-위키

  1. 복잡성을 감출 수 있음
    (로우 레벨의 세부 사항을 가려줌)

아래 하위 계층이 어떻게 돌아가는지 몰라도, 목적을 이루고 이해하게끔 디자인 됨

  1. 인터페이스가 잘 정의되어 있어서, 저런 식의 응용이 가능.
    프로그래밍에서 라이브러리나 API 내용이 뭔지 몰라도 쓰는거처럼ㅇㅇ

  2. ABI (APPLICATION BINARY INTERFACE)만 잘 구현되어 있으면, 내부적으로 뭐 어떻게 돌아가는지 몰라도 시스템 소프트웨어는 잘 만들어질거임

  3. ISA(instruction set architecture) 어떤 하드웨어를 제어하기 위해 필요한 명령어

  4. 구현 - 인터페이스만 잘 이해하면 가능 -> 추상화의 이점

Parallelism - 병렬화

implicit parallelism: instruction - level parallelism(ILP)
(내 의도를 드러내지 않는, 감춰진) 명령어 단위 레벨의 병렬화
(컴파일러, 언어, 하드웨어가 알아서 병렬성을 찾아서 병렬로 실행함.
ILP는 명령어간의 관계를 파악해서 병렬성을 만드는겨)

일련의 프로그램은 순차적으로 실행될것으로 생각되지만, 겹치는 경우가 좀 있음
다이나믹 스케쥴링 (이거 보안공격 있어서 교수님이 나중에 다루고 싶다함)

explicit parallelism: 사용자가 직접 병렬구조를 찾고, 명시해서 병렬 코드를 짜는 거
(근데 교수님이 별 설명을 안함, 이해만 하고 가쟈)

Dennard Scaling - 트랜지스터가 작아져도 파워 덴시티는 일정하다
power = alpha * CFV^2
alpha - 상수값
C = capacitance (면적)
F = frequency
V = voltage
같은 면적이면은 사용하는 파워는 일정하다?
(트랜지스터가 작아지면 그만큼 많이 넣을수 있겠지만, 똑같을까?)

하지만 트랜지스터가 많아지면 손실이 많아지게 됨.
똑같은 단위 면적에서 더 많은 일을 하게 되는데, 열로 손실이 일어남

그래서 이 이론은 점점 끝나가는 중..

domain specific architecture(DSA) - 특정 문제를 해결하는데 집중한 아키텍쳐
accelerator라고도 부름
gpu (그래픽 작업), 뉴럴 네트워크 (딥러닝) 요론거

Domain specific Language(DSL)
dsa를 효율적으로 돌리는데 특화되는 언어
matlab, tensorflow 요론거 ㅇㅇ

0개의 댓글