CS/컴퓨터구조 27

멀티프로세서의 성능 측정

1. 루프라인 모델 연산 강도에 따라 정해지는 커널 성능의 상한치 2. 루프라인 최적화 - 커널의 계산 병목 감소 부동 소수점 연산의 혼합 동일한 수의 덧셈과 곱셈을 거의 동시에 수행해야 좋은 성능 기대 가능 컴퓨터가 곱셈-덧셈 융합 명령어를 지원하거나, 부동 소수점 유닛이 같은 수의 덧셈, 곱셈기를 가지고 있기 때문 명령어 수준 병렬성 및 SIMD 적용 컴파일러가 생성하는 코드의 ILP가 증가하도록 코드 개선 3. 루프라인 최적화 - 메모리 병목 감소 소프트웨어 선인출 많은 메모리 작업들이 계속 진행되어야 함 예측 접근을 수행 메모리 친화도 메모리 제어기를 포함하여 같은 메모리-프로세서 쌍에 할당

CS/컴퓨터구조 2023.02.25

창고 규모의 컴퓨터 (WSC)

1. WSC의 프레임워크 Hadoop Map-Reduce 2. 서버와 다른 점 대규모이면서 쉬운 병렬성 독립적인 처리가 필요한 대량의 독립적인 데이터가 있을 때 유리 SaaS(Software as a Service)와 같은 쌍방식 인터넷 서비스 응용은 요구 수준 병렬성(읽기, 쓰기)의 형태를 띰 가동 비용의 중요성 WSC는 수명이 길기 때문에 10년~20년의 감가상각비로 계산됨 확장성과 확장에 따른 기회/문제 규모가 크기 때문에 대량 구매에 따르는 할인을 받을 수 있음 규모에 따라 고장 확률이 높아짐

CS/컴퓨터구조 2023.02.25

컴퓨터 클러스터

1. 컴퓨터 클러스터란 여러 대의 컴퓨터들이 연결되어 하나의 시스템처럼 동작하는 컴퓨터들의 집합 메시지 전달 병렬 컴퓨터 중 한 종류 일반적으로 근거리 고속 통신망으로 연결 독자적인 메모리와 운영체제를 가지고 있으며, 서버로 사용되는 노드에서 각각의 운영체제가 실행 서버가 하나 고장나더라도 부드럽게 성능이 떨어지므로 신용도가 높음 2. 클러스터의 구조 노드 : 프로세싱 자원을 제공하는 시스템 관리자 : 노드를 서로 연결하여 단일 시스템처러 보이게 만드는 로직 제공 3. 클러스터를 이용하는 회사 Amazon, Facebook, Google, Microsoft ...

CS/컴퓨터구조 2023.02.25

도메인에 특화된 구조(DSA)란

1. DSA란 도메인에 특화된 구조 멀티코어 성능에 실제적인 한계가 있기 때문에 에너지 효율을 높이기 위한 방안으로 나온 구조 운영체제와 같은 큰 프로그램을 수행하는 표준 프로세서와 도메인에 특화된 프로세서로 구성 2. DSA의 원리 데이터 이송 거리를 최소화하기 위해 전용 메모리를 사용 하드웨어적인 방법으로 데이터를 이송할 필요가 없음 소프트웨어로 제어하는 메모리를 사용 고급 마이크로구조 최적화 기법을 포기함으로써 절약되는 자원을 더 많은 연산 유닛과 더 큰 메모리에 사용 도메인에 적합한 가장 쉬운 형태의 병렬성 활용 도메인에 필요한 최소 크기로 데이터 크기와 데이터형을 줄임 도메인에 특화된 프로그래밍 언어 사용 비전 처리를 위한 Halide 기계학습을 위한 TensorFlow 3. 예시 인공지능

CS/컴퓨터구조 2023.02.24

캐시의 일관성 유지

캐시 일관성 유지 프로토콜 데이터 블록의 모든 공유 상태를 추적 스누핑 복사본을 가지고 있는 캐시들이 협력하여 일관성 유지 방송형 전송 매체를 통하여 접근 블록의 복사본을 가지고 있는지 없는지를 확인하기 위하여 전송 매체를 감시(snoop) 쓰기 무효화 프로토콜 : 쓰기 작업이 일어날 때 읽기 또는 쓰기가 가능한 다른 복사본이 없다는 것을 보장 디렉터리 기반 캐시 일관성 유지 프로토콜 디렉터리라는 한 장소에 실제 메모리 블록의 공유 상태 저장 스누핑보다 구현 오버헤드가 더 크지만 트래픽을 줄일 수 있어 많은 프로세서가 있을 때 적합

CS/컴퓨터구조 2023.02.21

캐시 제어를 위한 유한상태기

1. 유한 상태기 (FSM) 컴퓨터 프로그램을 설계할 때 쓰이는 모델로 컴퓨터는 오로지 하나의 상태만 갖고 있을 수 있으며 각 상태별 동작과 상태끼리의 전이에 대한 내용을 설계 입력과 출력의 집합으로 순서도에 가깝다 무어 FSM은 상태에 따라 순서가 결정됨 밀리 FSM은 상태와 입력에 따라 순서가 결정됨 2. FSM의 상태 대기 상태 (Idle) 유효한 읽기 또는 쓰기 요청이 오기를 기다리는 상태 요청이 올 시 태그 비교 상태로 이동 태그 비교 상태 (Compare Tag) 읽기나 쓰기 요청이 적중인지 실패인지 검사 적재 명령어 : 선택된 워드에서 데이터를 읽음 저장 명령어 : 선택된 워드에 쓰며, 캐시 준비 신호가 인가 쓰기 명령어 : 갱신 비트를 1로 만듦 적중이고 블록이 유효할 때, 대기 상태로 돌..

CS/컴퓨터구조 2023.02.21

메모리 계층의 실패원인 - 3C모델

1. 필수 실패 (Compulsory miss) 캐시에 한 번도 들어오지 않았던 블록에 대한 첫 번째 접근 최초 시작 실패 블록의 크기를 늘려 해결 2. 용량 실패 (Capacity miss) 프로그램 수행 중 필요한 모든 블록을 포함할 수 없을 때 발생 캐시의 크기를 크게 해서 해결 3. 대립 실패 (Conflict miss) 같은 집합에 대해 경쟁을 벌일 때 발생 충돌 실패 완전 연관 캐시에서는 발생하지 않음 연관 정도를 높여 해결

CS/컴퓨터구조 2023.02.21

캐시에서 데이터를 찾는 방법

1. 캐시 메인 메모리와 프로세서 사이의 메모리 계층 빠르고 비싸다 캐시에 없는 데이터를 요청할 경우 메모리에서 캐시로 가져오게 된다. 교체가 필요할 경우 최신 것으로 교체되어 시간적 지역성 활용 가능 캐시 실패 시 파이프라인 지연 만을 발생시킴 다단계 캐시의 경우 1차 캐시는 실패율을 줄이기 위해 크기, 블록이 작고 2차 캐시는 접근시간이 중요하지 않기에 크기가 크다 2. 캐시 내 데이터 배치 - 직접 사상 캐시의 위치를 할당하는 방법으로 워드의 메모리 주소를 이용함 각 메모리 위치가 캐시 내의 딱 한 장소에 바로 사상되기 때문에 이 방식을 이용 (블록 주소) modulo (캐시 내에 존재하는 전체 캐시 블록 수) - 완전 연관 캐시 내의 어느 곳에나 들어갈 수 있는 방식 검색 시 캐시 내의 모든 엔트..

CS/컴퓨터구조 2023.02.14

메모리에서 데이터를 찾는 방법

1. 적중 / 실패 - 적중 : 프로세서가 요구한 데이터가 상위 계층의 어떤 블록에 있을 때 - 실패 : 상위계층에서 찾을 수 없을 때 - 적중률 : 메모리 접근 중 상위 계층에서 찾을 수 있는 것의 비율. 메모리 계층의 성능을 평가하는 척도 - 실패율 : 메모리 접근 중 상위 계층에서 찾을 수 없는 것의 비율. 1 - 적중률 2. 적중과 실패의 처리 속도 - 적중시간 : 메모리 계층구조의 상위 계층을 접근하는데 걸리는 시간. 적중인지 실패인지를 결정하는데 필요한 시간도 포함 - 실패손실 : 상위 계층 블록과 교체하는 시간 + 블록을 프로세서에 보내는 데 걸리는 시간. 대부분은 다음 계층에 접근하는 시간이다.

CS/컴퓨터구조 2023.02.14

단일 사이클 vs 멀티 사이클 vs 파이프라이닝

1. 단일 사이클 한 명령어를 동작하는데 한 사이클이 걸리는 설계 모든 명령어에 대해 같은 클럭 사이클을 가져야 함 2. 멀티 사이클 한 명령어 실행의 각 단계가 한 클럭 사이클씩 걸리는 설계 사이클이 다를 경우 한 명령어가 기능 유닛을 두 번 이상 사용할 수 있어 필요한 하드웨어 양을 줄일 수 있음 3. 파이프라이닝 여러 명령어가 중첩되어 실행되는 기술 처리량을 증가시킬 수 있음 명령어의 양이 적고, 명령어가 모두 같은 길이일 수록 설계가 쉬움

CS/컴퓨터구조 2022.09.06

클러킹 방법론

1. 클러킹 방법론 - 신호를 읽고 쓰는 시점을 정의 - 하드웨어를 예측가능하게하여 원자적으로 만듦 2. 에지 구동 클러킹 - 순차 논리 소자에 저장된 값은 클럭 에지에서만 바꿀 수 있다는 것을 의미 클럭 에지 : 낮은 값에서 높은 값 혹은 그 반대로의 빠른 변이 - 상태 소자에서 입, 출력을 받음. - 입력 : 이전 클럭 사이클에서 상태 소자에 쓴 값 - 출력 : 다음 클럭 사이클에서 조합 논리나 상태 소자가 사용할 수 있는 값들. 제어신호가 표시된다. 쓰기 제어 신호가 인가되고 활성화 클럭 에지일 경우 상태 소자가 변한다

CS/컴퓨터구조 2022.09.05

논리 소자

1. 조합소자 - combinational element - 데이터 값에 대해 연산을 수행하는 소자로, 출력이 현재 입력에 의해서만 결정되어 같은 입력이 주어지면 항상 같은 출력 발생 ex) ALU, AND 게이트 2. 상태소자 - state element - 내부에 기억장소를 가지고 있는 소자 - 2개의 입력과 1개의 출력 - 입력 : 기록할 데이터, 클럭 - 출력 : 이전 클럭 사이클에 기록된 값 ex) 명령어 메모리, 데이터 메모리, 레지스터

CS/컴퓨터구조 2022.09.05

부동소수점 자리맞춤

1. 보호비트와 자리맞춤비트 추가 보호비트 : 5 자리맞춤 비트 : 6 부호비트와 자리맞춤 비트가 있을 경우 0부터 49는 버리고, 51부터 99는 올린다. 50은 타이브레이커이므로 50%는 버리고 50%는 올린다. (=2.37) 부호비트와 자리맞춤 비트가 없을 경우 두 자리를 버리고 덧셈한다. (=2.36) 2. ulp units in the last place 유효자리의 최하위 비트 중 오류가 발생한 비트의 개수 3. 가장 가까운 짝수로의 자리맞춤 두 값의 가운데에 위치할 때, 최하위 비트가 홀수이면 + 1을 하고, 짝수이면 잘라내어 항상 최하위 비트를 0으로 만든다. 4. 점착 비트(sticky bit) 정밀도를 높이기 위한 방법으로 보호비트와 자리맞춤 비트 외의 세번째 비트에 해당 자리맞춤 비트 ..

CS/컴퓨터구조 2022.09.04

목적 파일(object file)

1. 목적 어셈블러의 결과물로, 실행 파일이나 라이브러리를 만들 때 쓰인다 2. 구조 목적 파일 헤더 : 목적 파일을 구성하는 각 부분의 크기와 위치를 서술 텍스트 세그먼트 : 기계어 코드 정적 데이터 세그먼트 : 프로그램 수명 동안 할당되는 데이터 재배치 정보 : 메모리에 적재될 때 절대 주소를 사용해야 하는 명령어와 데이터 워드를 표시 심벌 테이블 : 외부 참조같이 아직 정의되지 않고 남아 있는 레이블들을 저장 디버깅 정보 : 각 모듈이 어떻게 번역되었는지에 대한 간단한 설명 3. 심벌 테이블 int x; int y; 위와 같은 변수를 선언했다고 할 때 심벌테이블에는 다음과 같이 저장된다 심벌 테이블은 레이블 이름을 명령어가 기억된 메모리 워드의 주소와 짝지어 주는 테이블이다 Type Name Add..

CS/컴퓨터구조 2022.08.21
728x90