스터디/컴퓨터구조 7

[혼자 공부하는 컴퓨터구조와 운영체제] 8_입출력장치

💡장치 컨트롤러장치 드라이버프로그램 입출력 방식이 무엇인지인터럽트 기반의 입출력 방식DMA 입출력 방식1) 장치 컨트롤러와 장치 드라이버장치 컨트롤러 = 입출력 제어기 = 입출력 모듈입출력장치의 종류가 매우 많음입출력장치의 데이터 전송률(데이터 교환 속도)가 낮음이 때문에, 입출력장치는 컴퓨터에 직접 연결되지 않고 장치 컨트롤러라는 하드웨어를 통해 연결됨 장치 컨트롤러의 역할CPU와 입출력장치 간의 통신 중개오류 검출데이터 버퍼링데이터 버퍼링버퍼링: 전송률이 높은 장치와 낮은 장치 사이에 주고받는 데이터를 버퍼라는 임시 저장 공간에 저장하여 전송률을 비슷하게 맞추는 방법 장치 컨트롤러의 내부데이터 레지스터주고받는 데이터가 많은 입출력장치에서는 레지스터 대신 RAM을 사용하기도 함.CPU와 입출력장치 사..

[혼자 공부하는 컴퓨터구조와 운영체제] 6_메모리와 캐시 메모리

💡RAM의 특징과 종류논리 주소와 물리 주소의 차이논리 주소를 물리 주소로 변환하는 방법 이해캐시 메모리와 저장 장치 계층 구조 개념 이해1) RAM의 특징과 종류RAM의 특징RAM에는 실행할 프로그램의 명령어와 데이터가 저장됨전원을 끄면 저장된 명령어와 데이터가 모두 날아감: 휘발성 저장 장치 → ‘실행할 대상’ 저장전원이 꺼져도 저장된 내용이 유지되는 저장 장치: 비휘발성 저장 장치 → ‘보관할 대상’ 저장CPU가 실행하고 싶은 프로그램을 RAM으로 복사하여 저장 후 실행 RAM의 용량과 성능RAM용량이 클수록 보조기억장치에서 미리 저장하는 데이터가 많아짐 → 실행 시간이 짧아짐 / 많은 프로그램 동시에 실행 유리하지만, 용량이 필요 이상으로 커졌을 때 속도가 그에 비례하여 증가 X. RAM의 종류..

[혼자 공부하는 컴퓨터구조와 운영체제] 5_CPU 성능 향상 기법

💡빠른 CPU를 위한 설계 기법빠른 CPU를 위한 명령어 병렬 처리 기법RISC와 CISC의 차이에 대한 이해1) 빠른 CPU를 위한 설계 기법클럭클럭 신호에 맞춰 CPU는 명령어 사이클을 실행클럭 속도가 높은 CPU는 일반적으로 성능이 좋음클럭 속도 → CPU 속도 단위1초에 클럭이 몇 번 반복되는지를 헤르츠(Hz)단위로 측정 클럭 속도는 일정하지 않음기본 클럭 속도/최대 클럭 속도최대 클럭 속도를 강제로 끌어올린 것 → 오버클럭킹 코어와 멀티코어지금까지 알던 ‘명령어를 실행하는 부품’ CPU는 오늘날 코어로 사용됨CPU: 명령어를 사용하는 부품을 여러 개 포함하는 부품코어를 여러 개 포함하고 있는 CPU: 멀티코어CPU / 멀티코어 프로세서하지만, 코어 수에 비례하여 무조건 연산 속도가 증가하지 않..

[혼자 공부하는 컴퓨터구조와 운영체제] 4_CPU의 작동 원리

💡ALU와 제어장치레지스터의 종류와 역할명령어 사이클의 이해인터럽트의 개념 1) ALU와 제어장치ALU받는 정보레지스터를 통해 피연산자제어장치로부터 수행할 연산을 알려주는 제어 신호내보내는 정보연산 수행 결과연산 수행 결괏값 → 일시적으로 레지스터에 저장 (프로그램 실행 속도를 위해)플래그연산 결과에 대한 추가적인 상태 정보플래그 레지스터에 저장부호 플래그제로 플래그캐리 플래그오버플로우 플래그인터럽트 플래그슈퍼바이저 플래그 제어장치제어 신호를 내보냄, 명령어 해석 부품제어 신호: 컴퓨터 부품들을 관리/작동시키는 일종의 전기 신호 받는 정보클럭 신호클럭: 컴퓨터의 모든 부품을 움직일 수 있게 하는 시간 단위해석해야 할 명령어명령어 레지스터로부터 받아 해석 → 제어 신호 발생시킴플래그 레지스터 속 플래그 ..

[혼자 공부하는 컴퓨터구조와 운영체제] 3_명령어

챕터3_명령어💡고급 언어와 저급 언어의 차이 이해컴파일 언어와 인터프리터 언어의 차이 이해명령어를 구성하는 연산 코드와 오퍼랜드명령어의 주소 지정 방식소스코드와 명령어 고급 언어와 저급 언어고급 언어사람을 위한 언어.대부분의 프로그래밍 언어. 소스코드.저급 언어컴퓨터가 직접 이해하고 실행할 수 있는 언어.명령어로 이루어짐.→ 고급 언어인 소스코드가 실행되기 위하여 저급 언어인 명령어로 변환 필요 저급 언어기계어0과 1의 명령어 비트로 이루어진 명령어 모음십육진수로도 표현어셈블리어오직 기계만을 위한 기계어를 사람이 읽기 편한 형태로 번역한 저급 언어프로그램의 절차를 가장 근본적인 단계부터 추적, 관찰 가능 컴파일 언어와 인터프리터 언어고급 언어가 저급 언어로 변환되는 방식 2가지 컴파일 언어컴파일러에 의..

[혼자 공부하는 컴퓨터구조와 운영체제] 2_데이터

챕터2_데이터 💡컴퓨터가 이해하는 정보 단위 이해하기.0과 1로 다양한 숫자를 표현하는 방법 이해.0과 1로 다양한 문자를 표현하는 방법 이해.0과 1로 숫자를 표현하는 방법 정보 단위비트 (bit) : 0과 1을 나타내는 가장 작은 정보 단위바이트 (byte) : 8bit킬로바이트 (kB) : 1000byte메가바이트(MB) : 1000kB기가바이트 (GB) : 1000MB테라바이트 (TB) : 1000GB워드 (word)하프 워드 (half word)풀 워드 (full word)더블 워드 (double word)워드 크기가 큰 CPU는 한 번에 처리할 수 있는 데이터가 많음.대부분 32bit/64bit.CPU가 한 번에 처리할 수 있는 데이터 크기 이진법0과 1만으로 모든 숫자를 표현하는 방법이진수..

[혼자 공부하는 컴퓨터구조와 운영체제] 1_컴퓨터 구조 시작하기

동기들과 함께 스터디를 시작하게 되었다!🥰학부 컴퓨터공학 부전공 시절, 컴퓨터구조 수업 듣는 게 너무 힘들었다. 당시 프로그래밍 언어를 제대로 공부했다고 할 만한 수준도 아니었기 때문에, 더 힘들었다고 생각한다. C에서 C#을 지나 C++을 배우며 공부하니, 로우레벨 시스템들에 대한 이해가 더욱 필요하다고 느꼈고, 다시 한번 컴퓨터구조 교재를 펼치게 되었다.  챕터1_컴퓨터 구조 시작하기💡컴퓨터 구조를 왜 알아야 할까?컴퓨터 구조의 큰 그림 그리기.컴퓨터 구조를 알아야 하는 이유문제 해결컴퓨터 구조를 이해하여 문제 상황을 빠르게 진단.다양하게 문제 해결의 실마리 탐색.+개인 의견) 디버깅뿐만 아니라 트러블슈팅이 가능한 개발자가 되기! 성능, 용량, 비용프로그램을 위한 최적의 컴퓨터 환경 판단.성능, ..