전체 글 27

[컴퓨터 구조] MIPS instructions

학교에서 들은 컴퓨터 구조 강의 내용을 복습하면서 작성한 글입니다.April 3, 2024 8:04 PM Instruction Encoding Exampleassembly instructions: addi $t0, $t1, 0x123machine code0010 0001 0010 10000000 0001 0010 0011opcode(명령어 종류)reg 9reg 8immediateaddi$t1$t00x0123→ 0x21280123명령어들은 machine code라고 불리는 binary로 encoded 된다MIPS instructions: 32bitRegister number$t0 - $t7: 8-15$t8 - $t9: 24-25$s0 - $s7: 16-23MIPS R-format Instructions: ..

CS/컴퓨터 구조 2024.06.15

[컴퓨터 구조] Instructions

학교에서 들은 컴퓨터 구조 강의 내용을 복습하면서 작성한 글입니다.March 20, 2024 3:53 PMStored Program Computer (폰노이만 컴퓨터)프로그램(binary code로 구현), 데이터가 메모리 안에 저장되어 있는 구조Binary Compatibility → 컴파일된 프로그램이 다른 컴퓨터들에서 작동할 수 있도록ISA(Instructions Set Architecture)MIPS instruction set입력 operand는 2개까지만 가능Arithmetic OperationsRegisterssmall amount of fast storageMIPS: 32x 32bit registersUsing Memory Valuesmemory의 값을 register에 loadregist..

CS/컴퓨터 구조 2024.06.15

[컴퓨터 구조] SPEC Benchmark & Amdahl’s law

학교에서 들은 컴퓨터 구조 강의 내용을 복습하면서 작성한 글입니다.March 20, 2024 3:12 PMSPEC CPU Benchmark성능 비교의 표준 제공SPECratio: reference machine에서 측정된 시간과의 비율해당 비율들을 기하평균을 통해 합산SPEC Power Benchmark (기준 전력 당 성능)performance: ssj_ops/secpower: Watts(Joules/sec)→ 단위 전력 당 초당 처리량: ssj_ops/Watt = 각 레벨에서의 작업량/각 workload 레벨에서의 전력소모FallacyAmdahl’s LawCPU 측면의 개선과 전반적인 성능의 향상이 비례하지 않음→ $T_{unaffected}$ 는 상수로, 시스템 성능 개선에 영향받는 않는 요소임MI..

CS/컴퓨터 구조 2024.06.15

[컴퓨터 구조] IC 제조 & Performance

학교에서 들은 컴퓨터 구조 강의 내용을 복습하면서 작성한 글입니다.March 16, 2024 5:11 PMIC (Intergrated Circuit, 집적회로) &IC CostYield(수율) ⬆️ → cost per die는 ⬇️Wafer Cost, area 고정defect는 제조과정에서 결정die area 는 구조와 회로 디자인에 다라 결정Performance성능 평가는 기준에 따라 달라질 수 있음직관적 성능: 실행시간과 반비례성능에 영향 주는 것들clock frequency: 속도코어 수processor architecture무엇을 측정하는 지에 다라 다름Algorithms: 실행되는 operation의 수 결정language, compiler, architecture: operation 당 실행되..

CS/컴퓨터 구조 2024.04.27

[컴퓨터 구조] 컴퓨터 추상화와 구조

학교에서 들은 컴퓨터 구조 강의 내용을 복습하면서 작성한 글입니다.March 15, 2024 5:54 PM인간:C/c++ → compile →머신코드 → 0101(논리)Seven Great Ideasuse abstraction to simplify design: 추상화 이용 시 복잡한 일이 간단한 명령어로 해결AbstractionInstruction Set Architecture (명령어 집합 구조) : 마이크로프로세서가 인식해서 기능을 이해하고 실행할 수 있는 기계어 명령어다양한 단계를 거쳐서 Software 에서 Hardware로 넘어가게 된다. 이때, Software 에서 Hardware 로 넘어가는 단계에서 중재자 역할을 해주는 것이 ISA.Application Binary Interface(AB..

CS/컴퓨터 구조 2024.04.27

[프로그래밍 언어론] Lex

학교에서 들은 프로그래밍 언어론 강의 내용을 복습하면서 작성한 글입니다.April 12, 2024 12:56 PMScanner: Text의 어휘 패턴을 인식하는 프로그램token: 입력을 나눈 의미있는 단위Lex 구조%{ //정의절 #include int count = 0;%}//여기에 패턴 단순화를 위한 변수 선언 가능//예: DIGIT [0-9]//사용시 {[0-9]}+ 대신 {DIGIT}+ 가능%% //규칙절: 입력된 문자에서 매칭되는 패턴과 패턴이 나타났을 때 해당하는 동작 ([0-9])+ {count++;} \n ;%%//사용자 서브루틴절int main(){ yylex(); return 0;}int yywrap(){ return 1;} 규칙절 속 패턴(정규표현식)특정한 규칙을 가진 ..

[프로그래밍 언어론] Lexical and Syntax Analysis

학교에서 들은 프로그래밍 언어론 강의 내용을 복습하면서 작성한 글입니다.April 8, 2024 6:41 PM source code 분석lexical analysislexical analyzer : 소스분석(들어온 것이 무엇인지 알 수 있어야함)syntax analysis - 문법syntax analyzer(parser): 문법에 맞는지 분석 (BNF 로 표시)BNF 사용의 장점 → 간결한 구문 설명, parser 만들수 있음, 유지보수 간단컴파일러소스코드-lexical analyzer-syntax analyzer-중간코드Lexical(Low Level), Syntax(High Level) Analysis 분리 이유 → Simplicity: 합치면 매우 복잡 → Efficiency → Portabilit..

[프로그래밍 언어론] Semantics

학교에서 들은 프로그래밍 언어론 강의 내용을 복습하면서 작성한 글입니다.March 26, 2024 4:17 PMSemantics (의미)작성된 수식, 문장 혹은 프로그램의 의미 정하기프로그램이 어떻게 동작하는가!semantics가 필요한 이유프로그래머 - 문장의 의미 알아야함컴파일러 작성자: 언어 구조가 하는 것 정확히 알아야함correctness 증명컴파일러 생성기 가능디자이너는 모호함, 불일치 감지종류operational semantics : 시뮬레이션denotational semantics : 수학적 함수 기반axiomatic semantics : 공리(반드시 참이 되는 명제) 기반Operational Semantics프로그램의 동작, 실행 과정을 정의: 프로그래밍 문장 실행하여, 기계(regist..

[프로그래밍 언어론] Attribute Grammars (AGs)

학교에서 들은 프로그래밍 언어론 강의 내용을 복습하면서 작성한 글입니다.March 25, 2024 5:27 PM Static Semantics (정적의미론)프로그래밍 언어의 문법 구조만으로는 설명할 수 없는 언어의 의미를 정의하는 방법Context-free grammar는 모든 프로그래밍 언어의 문법을 설명할 수는 X문제문맥 자유이지만 번거로움비문맥 자유: 변수 사용전에 선언해야함context-free의 한계: 오류에 대한 처리, 변수 사용 전 선언 → AGs: 해결하기 위해 나옴Attribute GrammarsContext-free grammar에 확장: 파스 트리 노드에 의미 정보를 가지고 있음parsing하며 알 수 있는 간단한 semantic 정보 집어넣어놓음이점프로그램의 정적 의미 명세 가능컴파..

[프로그래밍 언어론] BNF/EBNF

학교에서 들은 프로그래밍 언어론 강의 내용을 복습하면서 작성한 글입니다.March 25, 2024 12:20 AM Syntax: 문장이 언어의 문법에 맞게 구성되었는가?Semantics: 문장의 의미가 타당한가?Terminologysentence: string of characterslanguage: set of sentenceslexeme(어휘): lowest level syntatic unit, 코드에 작성되고 사용되는 모든 문자열, 숫자, 기호 등sum, *,,,⬇️ lexical analyzer(어휘분석기)token: lexeme을 카테고리로 묶어서 항목별 분류해놓은 것identifier, equal sign,,,프로그래밍 언어 정의 방법recognizer(언어 인식기): 입력되는 문자열을 읽고,..