본문 바로가기

분류 전체보기

(308)
[Computer Architecture] Cache Memory: Block Mapping + 한국항공대학교 길현영 교수님의 컴퓨터구조론 과목 내용을 정리한 글입니다. 블록 사상 (Block Mapping) 캐시는 메모리보다 용량이 작기 때문에 다수의 메모리 블록이 동일한 캐시 블록에 사상(위치)한다. 1. 직접 사상 => 메모리 블록을 정해진 하나의 캐시 블록에만 사상할 수 있다. (정해진 한 곳에만 위치 가능) 2. 완전 연관 사상 => 메모리 블록을 어떤 캐시 블록에도 사상할 수 있다. (아무대나 위치 가능) 3. 집합 연관 사상 (직접 사상과 완전 연관 사상 절충) => 메모리 블록을 정해진 블록의 집합 내 어디든 사상할 수 있다. (정해진 여러 곳에 위치 가능) - 시험 메모리 크기 = 512 byte 캐시 크기 = 128 byte 블록 크기 = 16 byte 워드 크기 ..
[Computer Architecture] Cache Memory 개요 + 한국항공대학교 길현영 교수님의 컴퓨터구조론 과목 내용을 정리한 글입니다. Cache 개요 캐시(Cache)의 의미 CPU와 메모리 사이의 속도 차이를 줄이기 위한 고속 메모리이다. 높은 비용으로 인해 작은 용량으로 구성되며, 컴퓨터 성능에 영향을 미친다. 프로그래머는 캐시 메모리를 조작할 수 있는 명령어가 없다. (투명성) 적중(Hit)과 실패(Miss) 적중: 원하는 항목(데이터)이 캐시 메모리에 있음 실패: 원하는 항목(데이터)이 캐시 메모리에 없음 적중률: 메모리 참조에 대한 캐시 성능 = 캐시 메모리의 적중 횟수 ÷ 전체 메모리의 참조 횟수 실패율 = 1 - 적중률 캐시의 Tag Memory 캐시는 데이터 메모리와 태그 메모리 총 2개의 메모리를 갖고 있다. Tag ( = Meta Data):..
[Computer Architecture] 메모리 + 한국항공대학교 길현영 교수님의 컴퓨터구조론 과목 내용을 정리한 글입니다. 주 기억장치 (CPU가) 실행할 프로그램과 데이터를 저장하는 기억장치 - CPU 가까이 위치하여, CPU가 처리할 프로그램과 데이터를 일시적으로 저장한다. - 전원 공급이 중단되면 기억된 내용이 지워진다. (Volatile Memory) 명령어 집합(ISA)에 의해 정의된 메모리이다. (작업장이자 저장소) - 프로그래머에게 보이는 시스템의 속성 중 하나로서, 조작할 수 있는 명령어가 존재한다. ex) load, store 주로 RAM (Random Access Memory)를 의미한다. - 저장된 데이터를 임의의 순서에 따라 접근할 수 있다. (차례로 접근하지 않고 주소를 통해 바로 엑세스) - 주로 DRAM (Dynamic R..
[Kotlin] 컬렉션 유틸리티 + 항공대학교 김철기 교수님의 객체 지향 프로그래밍 과목 내용를 정리한 글입니다. ++ 직접 코딩하라는 문제는 나오지 않고, 코드를 주고 어떤 의미인지 적는 문제가 출제됩니다. Collection의 생성 fun main() { val a1 = listOf(1, 2, 3) // unmutable list 생성 println(a1) // [1, 2, 3] // a1.add(4) 불가능 val a2 = mutableListOf(1, 2, 3) // mutable list 생성 a2.add(4) // 가능 println(a2) // [1, 2, 3, 4] val m1 = mapOf(1 to "I", 5 to "V", 10 to "X", Pair(50, "L")) // pair 객체를 통해 map 생성 print..
[Kotlin] 컬렉션 타입 + 항공대학교 김철기 교수님의 객체 지향 프로그래밍 과목 내용를 정리한 글입니다. 배열 Array C언어의 배열과 비슷한 특성을 갖는다. - 크기가 정해져 있다. - 원소의 삽입, 삭제가 불가능하다. - 원소의 대치는 가능하다. (원소 변경) Java의 기본 자료형이다. - Java와의 호환을 위해 Kotlin의 collection 관련 class를 상속 받지 않는다. iterator()를 제공한다. - for문을 통해 원소를 차례로 방문할 수 있게 한다. fun main() { val arr = arrayOf("Hello", "World", "Kotlin") for (elem in arr) { println(elem) } } Java와의 호환 및 성능을 위해 기본 자료형 별 Array 클래스가 있다. ..
[백준/Python] 1969번: DNA 문제 https://www.acmicpc.net/problem/1969 1969번: DNA DNA란 어떤 유전물질을 구성하는 분자이다. 이 DNA는 서로 다른 4가지의 뉴클레오티드로 이루어져 있다(Adenine, Thymine, Guanine, Cytosine). 우리는 어떤 DNA의 물질을 표현할 때, 이 DNA를 이루는 뉴클레오 www.acmicpc.net 문제 요약 길이가 M인 DNA 뉴클레오티드 문자열 N개를 입력 받고, 각 문자열에 대해 Hamming Distance의 합이 가장 작은 DNA와 Hamming Distance의 합을 출력한다. Hamming Distance란 길이가 같은 두 DNA가 있을 때, 각 위치의 뉴클레오티드 문자가 다른 것의 개수이다. ex) TATGATAC와 TAAGCT..