반응형

.contains() 특정 문자열의 포함 여부

fun main() {

    var string = "Hello World"

    println(string.contains("Hello")) // 출력 : true
    println(string.contains("World")) // 출력 : true
    println(string.contains("hello")) // 출력 : false -> 대소문자 구분 있음
    println(string.contains("korea")) // 출력 : false
    println(string.contains("W")) // 출력 : true

}
반응형
반응형

조건문 when

코틀린에서 when은 다른 언어에서 사용하는 조건문 switch와 비슷하다.

// 숫자에 따라 성적을 출력하는 조건문 when

fun main() {

	val number = 10

    when (number) {
        in 90..100 -> println("A")
        in 80 until 90 -> println("B")
        in 70 until 80 -> println("C")
        in 60 until 70 -> println("D")
        else -> println("F")
    }
    
}
반응형
반응형

메이저 스테이트(Major State)

- 메이저 스테이트는 현재 CPU가 무엇을 하고 있는가를 나타내는 상태로써 CPU가 무엇을 위해 주기억장치에 접근하냐에 따라 Fetch, Indirect, Excute, Interrupt 이렇게 네 가지 상태가 있다.

- 메이저 스테이트는 메이저 스테이트 레지스터를 통해 알 수 있다.

- 메이저 사이클(Major Cycle) 또는 머신 사이클(Machine Cycle)이라고도 한다.

반응형
반응형

마이크로 오퍼레이션(Micro Operation)

- 마이크로 오퍼레이션은 명령(Instruction)을 수행하기 위해 CPU 내의 레지스터와 플래그가 의미 있는 상태 변환을 하도록 하는 동작이다.

- 마이크로 오퍼레이션은 레지스터에 저장된 데이터에 의해 이뤄지는 동작이다.

- 마이크로 오퍼레이션은 한 개의 클럭 펄스 동안 실행되는 기본 동작으로 모든 마이크로 오퍼레이션은 CPU의 클럭 펄스에 맞춰 실행된다.

- 마이크로 오퍼레이션은 명령을 수행하기 위해 진행되는 가장 작은 단위의 동작을 의미하는 것으로 더 이상 세분화될 수 없고 실행 중에는 중단되지 않는다는 의미에서 원자(Atomic) 연산이라고도 한다.

- 마이크로 오퍼레이션의 순서를 결정하기 위해 제어장치가 발생하는 신호를 제어신호라고 한다.

- 마이크로 오퍼레이션은 Instruction 실행 과정에서 한 단계씩 이루어지는 동작으로 한 개의 Instruction은 여러 개의 마이크로 오퍼레이션이 동작되어 실행된다.

 

마이크로 사이클 타임(Micro Cycle Time) = CPU Cycle Time = CPU Clock Time

- 한 개의 마이크로 오퍼레이션을 수행하는 데 걸리는 시간을 Micro Cycle Time이라고 한다.

- 모든 순서논리회로는 클럭 펄스의 동기화에 의해 동작되는데 CPU도 하나의 거대한 순서논리회로이므로 CPU 역시 이 클럭 펄스에 동기화되어 동작된다.

- 이 때의 펄스를 CPU 클럭이라 하며 한 개의 마이크로 오퍼레이션은 이 CPU 클럭의 발생 주기의 간격 시간 내에 실행된다.

- CPU Cycle Time 또는 CPU Clock Time이라고도 하며 CPU 속도를 나타내는 척도로 이용한다.

 

마이크로 사이클 부여 방식

1) 동기 고정식(Synchronous Fixed) : 동기 고정식은 모든 마이크로 오퍼레이션의 동작 시간이 같다고 가정하여 CPU Clock의 주기를 Micro Cycle Time과 같도록 정의하는 방식으로 동작 시간이 가장 긴 마이크로 오퍼레이션의 동작 시간을 마이크로 사이클 타임으로 지정한다.

* 장점 : 제어기의 구현이 단순하다. / 단점 : CPU의 시간 낭비가 심하다.

 

2) 동기 가변식(Synchronous Variable) : 동기 가변식은 수행 시간이 유사한 마이크로 오퍼레이션끼리 그룹을 만들어 각 그룹 별로 서로 다른 마이크로 사이클 타임을 정의하는 방식으로 마이크로 오퍼레이션 수행 시간이 현저한 차이를 나타낼 때 사용한다.

* 장점 : CPU의 시간 낭비를 줄일 수 있다. / 단점 : 제어기의 구현이 복잡하다.

 

3) 비동기식(Asynchronous) : 비동기식은 모든 마이크로 오퍼레이션에 대하여 서로 다른 마이크로 사이클 타임을 정의하는 방식이다.

* 장점 : CPU의 시간 낭비가 전혀 없다. / 단점 : 제어기가 매우 복잡해지므로 실제로는 구현이 거의 불가능하다.

반응형

+ Recent posts