본문 바로가기

Computer Science

(39)
[Computer Architecture] 명령어 집합 (2) + 한국항공대학교 길현영 교수님의 컴퓨터구조론 과목 내용을 정리한 글입니다. 왜 CPU 내 기억장치 (Register)가 필요한가? 폰 노이먼 모델에서 발생 가능한 데이터 트래픽 추정 - SW와 HW의 분리로, 프로그램이 수정이 가능하고, 다양한 프로그램을 쉽게 사용 가능하다. - 대신, 항상 기억 장치와 CPU 간 데이터 이동이 발생한다. (명령어/자료 등) => 시간이 지날 수록, CPU와 기억 장치 간 속도 차이가 커졌다. (병목 현상) CPU 내부 기억장치(레지스터)가 없는 가상의 컴퓨터를 가정 M - M (메모리 - 메모리) 컴퓨터 - CPU 내부에 데이터 저장 불가하다. - 모든 데이터는 메모리에서 CPU를 경유하..
[Computer Architecture] 명령어 집합 (1) + 한국항공대학교 길현영 교수님의 컴퓨터구조론 과목 내용을 정리한 글입니다. Fake Simple 컴퓨터 명령어 집합 (가정) 명령어 연산 부호 (16진법) 의미 LDA (Load) 1 메모리의 내용을 누산기(CPU)에 적재 STA (Store) 2 누산기(CPU)의 내용을 메모리에 저장 ADD (Add) 3 누산기의 내용과 메모리의 내용을 덧셈 (누산기에 저장) SUB (Subtract) 4 누산기의 내용에서 메모리의 내용을 뺄셈 (누산기에 저장) JMP (Jump) 5 지정한 주소로 분기 CAL (Call) 6 프로시저 호출 HLT (Halt) 8000 프로그램 종료 CPL (Complement) 8001 누산기의 내용을 보수화 IAC (Increase AC) 8002 누산기의 내용을 ..
[Embedded Software] Embedded System 개발 실습 + 한국항공대학교 최차봉 교수님의 임베디드 SW 과목 내용을 정리한 글입니다. TinkerCad를 이용하여 "Morning Alarm"을 제작하라 - 아침이 밝아 빛의 양이 일정한 수치 이상이 될 때 음악을 재상한다. - 스위치를 누르면 반복 재생되던 알람이 꺼진다. // Morning Alarm // Brighter than DAWN: paly music while checking button //press button -> Stop playing music #define DAWN 7 // alram point #define LONGTIME 60000 int val; int butPressed = 0; int note[] = {262, 294, 3..
[Embedded Software] Embedded System 개발 (example) + 한국항공대학교 최차봉 교수님의 임베디드 SW 과목 내용을 정리한 글입니다. Embedded System 개발 프로세스 1. 시스템 요구 정의 - 사용자 관점에서 생각하며 시스템 개발에서 요구되는 것들을 정의한다. ex) User Interface, Scenario, QCD(Quality, Cost, Delivery) 등 2. 시스템 아키텍처 설계 - 구조 설계 - HW와 SW의 역할과 기능을 분담하고, 구성과 동작을 구체화하며 기능간 연동과 제한사항을 기술한다. 3. 소프트웨어 개발 - 상세 설계 - HLD(High Level Description, 크게 설계) => LLD(Low Level Description, 보고 바로 구현할 수 있을 정도의 설계) => 구현 ex) Unit Test(단위 테스..
[Computer Architecture] 명령어 집합 구조 + 한국항공대학교 길현영 교수님의 컴퓨터구조론 과목 내용을 정리한 글입니다. 명령어 집합 구조 (ISA, Instruction Set Architecture) 좁은 의미에서 컴퓨터 구조 = 명령어 집합 구조 (ISA) 어떤 프로그램과 그 프로그램을 수행할 컴퓨터 하드웨어 사이의 인터페이스에 대한 완전한 정의 혹은 명세 - 명령어는 CPU 등 컴퓨터 하드웨어에서 인식되거나 실행될 수 있는 기계 명령어이다. Machine Code - 기계어: The byte-level programs that a processor excutes => 프로세서에서 실행되는 2진 코드 (2진 코드) Assembly Code - 어셈블리어: A text representation of machine code => 컴퓨터 하드웨어..
[Embedded Software] Shell Script 실습 + 한국항공대학교 최차봉 교수님의 임베디드 SW 과목 내용을 정리한 글입니다. 터미널이 시작될 때마다 다음과 같이 표시되도록 환경을 설정하라. => vi .bashrc : 터미널이 시작될 때마다 실행되는 .bashrc 파일을 수정한다. echo ${LOGNAME^^} '!!!' # !를 사용할 때는 ''사용할 것 echo $(pwd) 끝 부분에 위 내용을 추가한다. $PATH 값을 읽어서 한 줄에 한 PATH씩 출력하라 (cut 명령어와 while 반복문을 이용) #!/bin/bash # display path one by one from $PATH i=1 a=$(echo $PATH | cut -d ':' -f..