목록Computer Science & Engineering (91)
봉황대 in CS
* 본 글은 '컴퓨터 구조 및 설계: 하드웨어/소프트웨어 인터페이스(Computer Organization and Design: The Hardware/Software Interface) 5th edition'의 내용과 2021학년도 1학기에 수강한 '컴퓨터 구조' 과목 강의 내용을 함께 정리하여 작성하였습니다. 나눗셈 나눗셈은 곱셈보다 사용 빈도는 낮지만 훨씬 까다롭다. 0으로 나누기와 같이 수학적으로 유효하지 않은 연산을 요구하기도 한다. 먼저 0과 1로만 이루어진 십진수의 나눗셈, 1001010÷1000을 보자. 나누어지는 수는 피제수(dividend), 피제수를 나누는 수는 제수(devisor)로 부르고, 몫(quotient)이라 불리는 결과와 나머지(remainder)라고 불리는 두 번째 결과가..
* 본 글은 '컴퓨터 구조 및 설계: 하드웨어/소프트웨어 인터페이스(Computer Organization and Design: The Hardware/Software Interface) 5th edition'의 내용과 2021학년도 1학기에 수강한 '컴퓨터 구조' 과목 강의 내용을 함께 정리하여 작성하였습니다. 곱셈 먼저 곱셈 연산의 순서와 피연산자의 명칭을 확실히 해야한다. 0과 1로만 구성된 십진수의 곱셈, 1000×1001을 보자. 첫 번째 피연산자는 피승수(multiplicand), 두 번째 피연산자는 승수(multiplier)라고 부른다. 최종 결과는 곱(product)이라고 부른다. 이진수 곱셈은 위에서 본 예시와 같이, 다음과 같은 단계만 거치면 된다. 1. 승수의 자리 수가 1이면 피승수..
* 본 글은 '컴퓨터 구조 및 설계: 하드웨어/소프트웨어 인터페이스(Computer Organization and Design: The Hardware/Software Interface) 5th edition'의 내용과 2021학년도 1학기에 수강한 '컴퓨터 구조' 과목 강의 내용을 함께 정리하여 작성하였습니다. 32비트 2의 보수 표현 앞서 2의 보수 표현법을 다룬 적이 있다. 2022.08.17 - [Computer Science/Computer Architecture] - [Chapter 2. 명령어: 컴퓨터 언어] 이진수와 2의 보수 표현법, 부호확장, 16진수 컴퓨터에선 32비트의 수를 연산을 할 것이기 때문에, 32비트의 수도 2의 보수로 표현할 수 있어야 한다. 32비트의 부호있는 수의 표현..
* 본 글은 '컴퓨터 구조 및 설계: 하드웨어/소프트웨어 인터페이스(Computer Organization and Design: The Hardware/Software Interface) 5th edition'의 내용과 2021학년도 1학기에 수강한 '컴퓨터 구조' 과목 강의 내용을 함께 정리하여 작성하였습니다. 프로그램의 번역 과정 C 프로그램을 컴퓨터가 실행할 수 있는 프로그램으로 변환하기 위한 4단계는 다음과 같다. 1. 컴파일 (Compile) 2. 어셈블 (Assemble) 3. 링크 (Link) 4. 로드 (Load) 상위 수준 언어 프로그램은 어셈블리 언어 프로그램으로 컴파일되고 다시 기계어 형태의 목적 모듈로 어셈블 된다. 링커는 여러 모듈과 라이브러리 루틴을 사용하여 모든 외부 참조를 해..
* 본 글은 '컴퓨터 구조 및 설계: 하드웨어/소프트웨어 인터페이스(Computer Organization and Design: The Hardware/Software Interface) 5th edition'의 내용과 2021학년도 1학기에 수강한 '컴퓨터 구조' 과목 강의 내용을 함께 정리하여 작성하였습니다. 병렬성과 명령어: 동기화 데이터 경쟁 관계 (Data Race) 태스크가 서로 독립적일 때에는 병렬 처리가 쉽다. 하지만 태스크가 서로 협력해야 할 때에는 어떨까? 이때 협력이란, 자원으로 서로 공유한다는 것으로 보통 다른 태스크들이 읽어야 하는 새로운 값을 어떤 태스크들이 쓰는 것을 의미한다. 태스크가 협력해야 하는 상황에서는 데이터 경쟁관계(data race)의 위험이 크다. 예를 들어, 두..
* 본 글은 '컴퓨터 구조 및 설계: 하드웨어/소프트웨어 인터페이스(Computer Organization and Design: The Hardware/Software Interface) 5th edition'의 내용과 2021학년도 1학기에 수강한 '컴퓨터 구조' 과목 강의 내용을 함께 정리하여 작성하였습니다. MIPS 주소 지정 방식 여러 형태의 주소 표현을 일반적으로 주소 지정 방식(addressing mode)이라고 한다. MIPS에서는 R, I, J 3개의 format으로 주소 지정 방식을 지원한다. 각 그림에서 보라색으로 강조된 부분이 피연산자를 뜻한다. 수치(Immediate) 주소 지정 피연산자는 명령어 내에 있는 상수이다. 레지스터 주소 지정 피연산자는 레지스터에 있는 값이다. 베이스(B..
* 본 글은 '컴퓨터 구조 및 설계: 하드웨어/소프트웨어 인터페이스(Computer Organization and Design: The Hardware/Software Interface) 5th edition'의 내용과 2021학년도 1학기에 수강한 '컴퓨터 구조' 과목 강의 내용을 함께 정리하여 작성하였습니다. 프로시저 (procedure) 프로시저(procedure)는 제공되는 인수(parameter)에 따라서 특정 작업을 수행하는 서브루틴을 말한다. 프로시저는 프로그래밍에서 함수(function)와 같다고 보면 되며, 이들은 프로그램을 이해하기 쉽고 재사용이 가능하도록 프로그램을 구조화하는 방법 중 하나이다. 인수는 프로시저에 값을 보내고 결과를 받아오는 일을 하므로, 프로그램의 다른 부분 및 데이..
* 본 글은 '컴퓨터 구조 및 설계: 하드웨어/소프트웨어 인터페이스(Computer Organization and Design: The Hardware/Software Interface) 5th edition'의 내용과 2021학년도 1학기에 수강한 '컴퓨터 구조' 과목 강의 내용을 함께 정리하여 작성하였습니다. 조건 명령어 (Conditional Operations) 조건부 분기 (Conditional Branch) 컴퓨터는 판단 기능이 있어, 입력 데이터나 연산 결과에 따라 다른 명령어를 실행할 수 있다. 우리가 프로그래밍을 할 때 if 문이나 go to 문과 같은 조건문을 사용하여 판단 기능을 표한다. MIPS 명령어로는 아래의 2가지가 존재하며, 이 두 명령어를 조건부 분기(conditional ..