IT 공부/컴퓨터구조(완)9 알고리즘 13 탐욕 알고리즘 탐욕 알고리즘 - 최적해를 보장하지 않지만, 적정해를 빠르게 구해준다 - 1. 부분 문제의 최적해를 구함 -> 부분해 집합에 추가 - 2. 새로운 부분해 집합이 실행가능한지 확인 = 제약조건을 위반하는지 검사 - 3. 새로운 부분해 집합이 문제의 해인지 확인 -> 아직 완성 안됬을 경우 1번부터 반복 ex) 거스름돈 문제 - 단위가 큰 돈으로만 거스름돈을 만듦 - 손님에게 드려야 하는 액수 초과하는지 검사 - 동전 총액이 일치하는 지 검사 허프만 트리 - 압축 알고리즘 - 접두어 코드 (노-프리픽스 코드) - 이진트리를 통해서, 나타낸다 ; 데이터 = 잎노드데이터 / 경로 = 접두어코드 - 사전 작업 ; 가장 빈도가 낮은 순서대로 저장 - 해 선택 ; 빈도가 가장 작은 노드 2개를 선택 .. 2025. 3. 30. 컴퓨터 구조 8 입출력장치 장치 컨트롤러 ; 입출력 장치를 다루기 위한 제어기 - 입출력장치는 종류가 너무 많고 / 전송률이 CPU 대비 너무 낮기 때문 - 전송률 ; 데이터를 얼마나 빨리 교환하는 지 - 입출력 제어기 / 입출력 모듈 등으로 불림 장치 컨트롤러 역할 1 CPU-입출력 장치 간의 통신 중개 2 오류 검출 3 데이터 버퍼링 ; CPU와 장치 사이의 데이터를 버퍼에 임시저장하여 전송률을 맞추는 방법 장치 컨트롤러 레지스터 - 데이터 레지스터 ; 버퍼 역할 / 데이터가 많은 입출력장치는 RAM을 쓰기도 함 - 상태 레지스터 ; 작업 할 준비가 되었는지 / 작업이 완료되었는지 / 오류 있는지 상태 정보 저장 - 제어 레지스터 ; 입출력 장치가 수행할 제어 정보와 명령을 저장 장치 드라이버 ; 장치 컨트롤러의 동.. 2025. 2. 19. 컴퓨터 구조 7 보조기억장치 하드디스크의 구성품 ; 자기적인 방식으로 데이터를 저장 - 플래터 ; 데이터가 실질적으로 저장되는 동그란 원판 - 스핀들 ; 플래터를 회전시키는 구성 요소 - 헤드 ; 플래터를 대상으로 데이터를 읽고 쓰는 구성 요소 - 디스크 암 ; 헤드가 부착되어 원하는 장소로 이동시키는 구성 요소 하드디스크의 구조트랙 ; 플래터를 동심원으로 나눴을 때 그 중 하나 섹터 ; 트랙의 조각 중 하나 / 보통 512바이트~ 4096바이트도 있음 실린더 ; 같은 트랙을 가진 플래터들 -> 연속된 정보를 실린더에 저장 -> 디스크암을 움직이지 않고 읽을 수 있음 탐색시간 ; 데이터가 저장된 트랙까지 헤드를 이동시키는 시간 회전지연 ; 헤드가 있는 곳으로 플래터를 회전시켜서 섹터와 헤드가 만나기까지 시간 전송시간.. 2025. 2. 17. 컴퓨터 구조 6 RAM RAM의 특징 - 전원을 끄면 저장 X - 따라서, 실행할 대상을 저장 RAM 용량과 성능 - RAM 용량이 적으면, 실행할 프로그램을 자주 가져와야 -> 실행 시간이 늘어남 DRAM ; Dynamic RAM 데이터가 동적으로 사라짐 따라서, 데이터 소멸을 막기 위해서, 일정 주기로 데이터를 재활성화 필요 소비전력 비교적 낮음 / 저렴함 / 집적도가 높음 대부분의 메모리 SRAM ; Static RAM 데이터가 사라지지 않음 데이터 재활성화할 필요 없음 속도도 DRAM보다 빠름 집적도가 낮음 / 소비전력 큼 / 가격도 비쌈 SDRAM ; Synchronous DRAM 클럭 신호와 동기화됨 클럭 신호마다, CPU와 정보를 주고 받을 수 있음 DDR SDRAM ; Double Data.. 2025. 2. 15. 컴퓨터 구조 5 CISC / RISC CPU 성능을 높이고자 한다면 아래가 중요하겠다. - 병렬처리가 가능한 설계 - 병렬처리 기법 적용 이 중, 병렬처리 기법 적용을 통한 CPU 성능 향상이란, 명령어 파이프라이닝이 잘 되고, 수퍼스칼라 기법이 잘 되는 것을 말할 것이다. 결국 파이프라이닝을 뭔가 쉽게 해야할 텐데, 그 방법이란 무엇일까? ISA ; instruction set architecture = 명령어 집합 / 명령어 집합 구조 - CPU 제조사마다 다름 - CISC - 인텔 AMD / RISC - ARM 애플 - 오픈소스 CISC ; Complex Instruction Set Computer - 가변길이 명령어 사용 -> 다양한 명령어 사용 -> 적은 명령어로 실행가능 -> 사용 메모리 적음 CISC 단점.. 2025. 2. 13. 컴퓨터 구조 4 CPU 성능향상 기법_1 CPU 성능 향상 기법 1 CPU 설계 2 명령어 병렬 처리 3 CISR / RISC CPU 설계 - 멀티 코어 / 멀티 스레드로 설계하면 빨라진다 클럭 ; 클럭속도를 높이면 빨라진다 - 클럭 속도를 부하에 맞게 조절함 ; 최대 클럭 장시간 유지 시 과열로 성능 하락 오버클러킹 ; 최대 클럭 속도를 높이는 기법 코어 ; 명령어를 실행하는 부품 - 최신 CPU는 멀티 코어로 명령어를 적절하게 분배하여 연산한다 스레드 - 하드웨어적 스레드 ; 하나의 코어가 동시에 처리하는 명령어 단위 -> 멀티스레드 프로세서 ; 코어가 멀티스레드를 처리할 수 있는 프로세서 - 소프트웨어적 스레드 ; 하나의 프로그램에서 독립적으로 실행되는 단위 명령어병렬처리기법 - 명령어 파이프 라이닝 - 수퍼스칼라.. 2025. 2. 8. 컴퓨터 구조 3 레지스터와 인터럽트 레지스터 1 프로그래 카운터 ; 메모리에서 읽어 들일 명령어 주소를 저장 2 명령어 레지스터 ; 메모리에서 읽어 들인 명령어 저장 3 메모리 주소 레지스터 ; CPU가 주소버스로 읽어 들이고자 하는 메모리 주소 값 4 메모리 버퍼 레지스터 ; CPU기 데이터 버스로 메모리와 주고 받을 값 5 플래그 레지스터 6 범용 레지스터 ; 데이터 또는 주소를 범용으로 저장 스택 주소 지정 방식 메모리 영역 안에 스택으로 사용하는 영역이 지정되어 있음 스택 포인터는 스택의 TOP 주소값을 저장한다 7 스택 포인터 ; 스택의 TOP 값을 저장하는 레지스터 \변위 주소 지정 방식 - 상대 주소 지정방식 ; 프로그램 카운터 기준으로 오퍼랜드를 오프셋으로 하는 주소를 읽음 - 베이스 레지스터 주소 지정 방식 .. 2025. 2. 4. 컴퓨터 구조 2 CPU - ALU & 제어장치 CPU ; ALU + 제어장치로 구성 ALU ; 연산장치 인풋 = 제어장치의 제어신호 + 레지스터 내 피연산자 아웃풋 = 플래그 레지스터의 플래그 + 레지스터에 결과값 저장 제어장치인풋 = 플래그 레지스터 내 플래그+ 명령어 레지스터 내 명령어 + 제어신호 + 클럭 아웃풋 = 제어신호 (CPU 내부 / 외부 / 입출력장치 ) 2025. 2. 2. 컴퓨터 구조 1 컴퓨터 구조 - 동작 중심으로 볼 때 구성품: 데이터 / 명령어 - 부품 중심으로 볼 때 구성품: CPU / 메모리 / 보조기억장치 / 입출력장치 CPU란? ALU / 레지스터 / 제어장치로 구성 메모리란? 프로그램 명령어 & 데이터를 저장 / 주소의 개념 보조기억장치란? 메모리는 전원이 꺼지면 데이터가 소실됨 / 메모리를 보조하기 위한 기억장치 메인보드란? CPU 메모리 등을 포함하는 마더보드 / 시스템 버스로 각 부품 연결시스템버스란? 주소버스/ 데이터버스 / 제어 버스로 구성 데이터 -> 숫자는? 문자는? 숫자 -> 2의 보수 개념 -> 빼기 연산을 더하기로 처리 가능 문자 -> 아스키 (7비트로 표현) -> 확장 아스키 (8비트) -> EUC - KR - 완성형 인코딩 방.. 2025. 2. 2. 이전 1 다음 반응형