본문 바로가기

개인공부/혼공학습단 13기 - 컴운

혼공학습단 13기- 3주차

@ 2주차 keyword 확인

레지스터의 동작 흐름 (pp. 114~ 117)

- 인터럽트 - 동기 인터럽트(예외), 비동기 입터럽트(하드웨어 인터럽트)

- 하드웨어 스레드 ex) 1코어 2스레드 

- 소프트웨어 스레드 ex)1코어 1스레드에서도 다중으로 스레드 실행

- CISC : 복잡한 명령어 구현, 가변 길이 명령어 특징, 메모리 공간 절약    명령어 처리시 긴 클럭 주기 필요

- RISC : 단순한 명령어 구현, 고정 길이 명령어, 많은 메모리 필요 → 명령어 처리시 1클럭 내외

 


6.1. RAM의 특징과 종류

6.1.1. RAM의 특징

- 실행할 프로그램의 명령어와 데이터가 저장되지만 전원을 끄면 모두 없어짐(휘발성 저장 장치)

→ 실행할 대상 저장

- 보조기억장치의 경우 전원을 끄면 데이터가 사라지지 않음(비휘발성 저장 장치)

→ CPU는 보조기억 장치에 접근하지 못함 → 보관할 대상 저장

 

6.1.2. RAM의 용량과 성능

- RAM의 용량이 적다면 보조기억장치에서 실행할 프로그램을 가져오는 일이 잦아 실행시간 ↑

- RAM 용량이 크면 많은 프로그램들을 동시에 빠르게 실행하는 데 유리함

- 용량에 따라 선형적으로 실행속도가 빨라지지 않으며, 어느 일정 수준 이상 수렴하게 됨

 

6.1.3.  RAM의 종류 

1) DRAM (Dynamic RAM)

- 시간이 지나면 저장된 데이터가 점차 사라지는 RAM → 일정 주기로 데이터 저장(재활성화) 필요

- 소비전력이 상대적으로 낮고 저렴하고, 집적도가 높아 대용량으로 제작 가능 → 일반적으로 쓰이는 램

 

2) SRAM (Static RAM)

- 저장된 데이터가 변하지 않는 RAM   시간이 지나도 저장된 데이터가 사라지지 않음

- SRAM은 DRAM보다 속도가 빠름

- 하지만 직접도 낮음, 상대적 소비 전력 큼, 비싼 가격의 단점이 있음

- 대용량은 필요없지만 속도가 빨라야하는 저장장치에 사용됨 (ex. 캐시 메모리)

 

3) SDRAM (Synchronous Dynamic RAM)

- 클럭 신호와 동기화된, 발전된 형태의 DRAM임   클럭에 맞춰 CPU와 정보를 주고 받을 수 있음

 

4) DDR SDRAM (Double Data Rate SDRAM)

- 최근 가장 흔히 사용되는 RAM, 대역폭을 넓혀 속도를 빠르게 만든 SDRAM

- DDR SDRAM은 두 배의 대역폭으로 한 클럭 당 두 번씩 CPU와 데이터를 주고 받을 수 있음

- 한 클럭당 한 번씩 데이터를 주고 받을 경우 SDR SDRAM (Single Data Rate SDRAM)

- DDR2 SDRAM은 DDR SDRAM의 2배, DDR3 SDRAM은  DDR2 SDRAM의 2배의 대역폭을 가짐

 

6.2. 메모리의 주소 공간

물리주소 : 메모리 하드웨어가 사용하는 주소

논리주소 : CPU와 실행 중인 프로그램이 사용하는 주소

 

6.2.1. 물리 주소와 논리 주소

- 메모리가 사용하는 물리 주소: 정보가 실제로 저장된 하드웨어상의 주소

- CPU와 실행 중인 프로그램이 사용하는 논리 주소 : 실행 중인 프로그램 각각에게 부여된 0번지부터 시작되는 주소

- 물리 주소는 메모리 하드웨어 상의 주소이고, 논리 주소는 CPU와 실행 중인 프로그램이 사용하는 주소

- CPU가 메모리와 상호작용하려면 논리 주소와 물리 주소간의 변환이 이루어져야 함

- 논리/물리 주소 간의 변환은 CPU와 주소 버스 사이에 위치한 메모리 관리 장치(MMU)라는 하드웨어에 의해 수행됨

- MMU : CPU가 발생시킨 논리 주소에 베이스 레지스터 값을 더하여 논리 주소를 물리주소로 변환 (pp 189)

- 베이스 레지스터 : 프로그램의 첫 물리 주소를 저장

- 논리 주소 : 프로그램의 시작점으로부터 떨어진 거리

 

6.2.2. 메모리 보호 기법

- 다른 프로그램의 영역을 침범할 수 있는 명령어는 위험하기 대문에, 논리 주소 범위를 벗어나는 명령어 실행 방지

- 실행 중인 프로그램이 다른 프로그램에 영향을 받지 않도록 보호할 방법이 필요

한계 레지스터가 담당 : 논리 주소의 최대 크기 저장

  프로그램 물리주소 범위는 베이스 레지스터 값 이상, (베이스 레지스터 값 + 한계 레지스터 값) 미만

- CPU는 메모리에 접근하기 전에 접근하고자 하는 논리 주소가 한계 레지스터보다 작은지를 항상 검사함

- 한계 레지스터보다 높은 논리 주소 접근 시, 인터럽트 발생 → 실행 중단

 

6.3. 캐시 메모리

- CPU가 메모리에 접근하는 시간은 CPU 연산속도보다 느림

- 이를 극복하기 위한 저장 장치가 캐시 메모리임

 

6.3.1. 저장 장치 계층 구조

- 컴퓨터가 사용하는 저장 장치들은 CPU에 얼마나 가까운가를 기준으로 계층적으로 나타낼 수 있음

- CPU와 가까울수록 빠르고, 용량이 작고 비쌈 

- CPU와 멀수록 용량은 크지만 느림

- 속도 기준, 레지스터-캐시메모리-메모리-보조기억장치 순

 

6.3.2. 캐시 메모리

- CPU 연산 속도가 아무리 빨라도, 메모리에 접근하는 속도가 느리면 CPU의 발전은 소용 없음

- CPU와 메모리 사이에 위치하여, 레지스터보다 용량이 크고 메모리보다 빠른 SRAM 기반의 저장 장치임

- 컴퓨터 내부에는 여러 개의 캐시 메모리가 있으며, CPU와 가까운 순서대로 L1 캐시, L2 캐시, L3 캐시라고 부름

- 일반적으로 L1, L2는 코어 내부에, L3는 코어 외부에 위치

- 캐시 메모리 용량, L1 < L2 < L3

- 속도, 가격 L3 < L2 < L1

- 멀티 코어 프로세서에서는 L1, L2 캐시는 코어마다 고유 캐시 메모리로 할당, L3는 공유하는 형태로 사용

계층) 레지스터 - L1 캐시 - L2 캐시 - L3 캐시 - 주기억장치 - 보조기억장치

 

6.3.3. 참조 지역성 원리

- 캐시 메모리는 메모리 보다 용량이 작음

- CPU가 사용할 법한 대상을 예측하여 저장함

- 자주 사용될 것으로 예측한 데이터가 실제로 캐시 메모리 내 데이터가 CPU에서 활용될 경우, 캐시 히트라고함

- 예측이 틀려 메모리에 직접 가져와야 하는 경우, 캐시 미스라고함

- 캐시 적중률은 캐시가 히트되는 비율을 뜻하며, 보통 컴퓨터의 적중률은 85~95% 이상임

- 참조 지역성의 원리를 통해 메모리로부터 가져올 데이터를 결정함

1) CPU는 최근 접근 헀던 메모리 공간에 다시 접근하려는 경향이 있다.

2) CPU는 접근한 메모리 공간 근처를 접근하려는 경향이 있다.

 

1)의 경우

프로그래밍에서 같은 변수가 여러번 사용되는데, 이렇게 최근에 접근했던 메모리 공간에 다시 접근하는 경향

→ 시간 지역성이라 함

 

2)의 경우
만약 게임을 한다고 하면 게임이 저장된 공간 근처, 한글 작성한다면 한글이 저장된 공간 근처로 집중적으로 접근하는 경향

공간 지역성 이라 함

 


 

7.1. 다양한 보조기억장치

7.1.1. 하드디스크

- 자기적인 방식으로 데이터를 저장하는 보조기억장치, 자기 디스크의 일종으로도 지칭함

- 실질적으로 데이터가 저장되는 곳은 동그란 원판인 플래터

- 수많은 N극 S극으로 저장하여 0,1과 같은 역할을 수행함

- 플래터를 회전시키는 구성 요소를 스핀들이라고 하며, RPM 단위를 사용함

- 플래터를 대상으로 데이터를 읽고 쓰는 구성 요소는 헤드이며, 헤드를 원하는 위치로 이동시키는 것을 디스크 암이라고 함

- 플래터는 트랙과 섹터라는 단위로 데이터를 저장함 (피자 한판 = 트랙, 피자 한조각 = 섹터)

- 여러 겹의 플래터 상에서 같은 트랙이 위치한 곳을 모아 연결한 논리적 단위를 실린더라고 함

- 하드디스크에서 저장된 데이터를 접근하는 시간을 크게 탐색시간, 회전 지연, 전송 시간으로 나눠지고, 성능에 큰 영향을 끼침

- 탐색시간 : 접근하려는 데이터가 저장된 트랙까지 헤드를 이동시키는 시간

- 회전지연 : 헤드가 있는 곳으로 플래터를 회전시키는 시간

- 전송시간 : 하드 디스크와 컴퓨터 간에 데이터를 전송하는 시간

 

7.1.2. 플래시 메모리 (친숙하지만)

- 흔히 사용되는 USB, SD카드, SSD가 플래시 메모리 기반의 보조기억장치임

- 전기적으로 데이터를 읽고 쓸 수 있는 반도체 기반의 저장장치임

- 다양한 곳에 널리 사용되는 저장 장치로, 주기억 장치중 하나인 ROM에도 사용, 거의 모든 전자 제품에 플래시 메모리가 포함됨

- NAND 플래시 : NAND 게이트 기반, 대용량 저장장치로 많이 쓰임(일반적인)

- NOR 플래시 : NOR 게이트 기반

- 플래시 메모리에는 셀이라는 단위로, 데이터를 저장하는 가장 작은 단위임 → 셀이 모여 MB, GB, TB 용량이 됨

- 하나의 셀에 몇 비트를 저장할 수 있느냐에 따라 플래시 메모리 종류가 나뉨

- 1bit - SLC (single level cell), 2 bit - MLC (multiple level cell), 3 bit - TLC (Triple level cell)

- 별 차이가 없어도, 플래시 메모리의 수명, 속도, 가격에 큰 영향을 미침

 

SLC 타입)

- MLC, TLC에 비해 빠른 입출력 가능

- 데이터 쓰고, 지우기를 MLC, TLC 보다 많이 할 수 있음

- 용량 대비 가격이 높음

- 읽기/쓰기가 많이 반복되는 경우 SLC 타입 사용

 

MLC 타입)

- SLC 타입보다 일반적으로 속도, 수명이 떨어짐

- 한 셀에 2 bit씩 저장 가능하기에 SLC보다 대용량화에 유리함

- SLC에 비해 저렴

 

TLC 타입)

- 시중의 플래시 메모리는 대부분 MLC, TLC 타입

- 수명이 가장 떨어지지만, 용량대비 가격이 저렴

 

셀보다 더 큰 단위 (처음 봄)

셀 → 페이지 →  블록 →  플레인 →  다이

 

- 플래시 메모리에서 읽기 쓰기는 페이지 단위로 이루어지지만, 삭제는 블록 단위로 이루어짐

- 페이지는 세 개의 상태를 가질 수 있음 (Free, Valid, Invalid)

 

Free) 어떠한 데이터도 저장되어 있지 않아, 새로운 데이터를 저장할 수 있는 상태

Valid) 이미 유효한 데이터를 저장하고 있는 상태

Invalid) 유효하지 않는 데이터를 저장하고 있는 상태

 

- 하드디스크와 다르게, 덮어쓰기가 불가능하여 valid 상태인 페이지에는 새 데이터를 저장할 수 없음

- 플래시 메모리에서는 삭제가 블록단위로 수행되기 때문에 낭비되는 부분들이 발생함

- 요즘 SSD 등 플래시메모리에서 가비지컬렉션이라는 기능을 제공

- 유효한 페이지만 새로운 블록으로 복사 기존 볼록 삭제

 

7.2. RAID의 정의와 종류 (실제 NAS 운용 중)

7.2.1. RAID의 정의

- RAID는 주로 하드디스크와 SSD를 사용하는 기술로, 데이터의 안정성 혹은 높은 성능을 위해 여러 개의 물리적 보조기억장치를 하나의 논리적 보조기억장치처럼 사용하는 기술을 의미함

 

7.2.2. RAID의 종류

- RAID 구성방법을 RAID 레벨이라 표현함 

- RAID 0,  RAID 1,  RAID 2,  RAID 3,  RAID 4,  RAID 5, RAID 6가 있고, 파생된  RAID 10, RAID 50이 있음

 

RAID 0)

- 여러 개의 보조기억장치에 데이터를 단순히 나누어 저장하는 구성 방식임

- 줄무늬처럼 분산되어 저장된 데이터를 스트라입이라고 하고, 분산하여 저장하는 것을 스트라이핑 이라고함

- 단점으로는 구성된 디스크 중 하나라도 고장나면 모든 하드 디스크 정보를 읽는데 문제가 생길 수 있음

 

RAID 1)

- 복사본을 만드는 방식임, 완전한 복사본을 만드는 구성이기에 미러링이라고 부름

- 복구가 매우 간단하다는 장점이 있음

- 하드 디스크 수가 제한적이라면, 사용 가능한 용량이 적어짐

 

RAID 4)

- 완전한 복사본을 만드는 것이 아닌, 오류를 검출하고 복구하기 위한 정보르르 저장한 장치를 두는 구성 방식

- 오류를 검출하고 복구하기 위한 정보를 패리티 비트라고 함

- 패리티를 저장한 장치를 이용하여 다른 장치들의 오류를 검출하고 이상이 있다면 복구함

- RAID 1에 비해 적은 하드디스크로도 데이터를 안전하게 보관할 수 있음

 

RAID 5)

- RAID 4에서는 새로운 데이터가 저장될 때마다 패리티를 저장하는 디스크에도 데이터를 쓰게되어 병목 현상이 발생함

- 패리티 정보를 분산하여 저장하는 방식으로 RAID 4의 문제인 병목 현상을 해소함

 

RAID 6)

- 기본적으로 RAID 5와 같으나, 서로 다른 두 개의 패리티를 두는 방식임

- 오류를 검출하고, 복구할 수 있는 수단이 더 생겨, RAID 4와 RAID 5 보다 더 안전한 구성임

- 하지만 패리티가 두 개이므로, 쓰기 속도는 RAID 5보다 느림

- 저장속도를 희생하더라도 더 안전하게 보관하고 싶을 때 사용하는 방식임

 


 

8.1. 장치 컨트롤러와 장치 드라이버

8.1.1. 장치 컨트롤러

- 입출력 장치의 데이터 전송률은 CPU와 메모리에 비해 낮음

- 이러한 이유로, 컴퓨터에 직접 연결되지 않고 장치 컨트롤러 라는 하드웨어를 통해 연결함

- 장치 컨트롤러는 입출력 제어기, 입출력 모듈 등으로도 불림

- 모든 입출력 장치는 각자 장치 컨트롤러를 통해 컴퓨터 내부와 정보를 주고 받고, 장치 컨트롤러는 입출력 장치와 연결됨

- 장치 컨트롤러는 CPU와 입출력장치 간의 통신 중개 및 오류검출, 데이터 버퍼링 등을 해결함

- 데이터 버퍼링은 전송률이 높은 장치와 낮은 장치 사이에 주고 받는 데이터를 버퍼에 저장하여 전송률을 비슷하게 맞추는 방법

- 장치 컨트롤러 내부는 데이터 레지스터, 상태 레지스터, 제어 레지스터로 구성됨

 

데이터 레지스터)

- CPU와 입출력장치 사이에 주고받을 데이터가 담기는 레지스터

- 장치 컨트롤러는 데이터 버퍼링으로 전송률 차이를 안화

- 데이터 레지스터가 버퍼 역할을 하며, 최근에는 주고 받는 데이터가 많은 입출력 장치에서는 레지스터 대신 RAM을 사용

 

상태 레지스터)

- 입출력장치가 입출력 작업을 할 준비가 되었는지, 작업이 완료되었는지, 오류가 있는지 등의 상태 정보를 저장

 

제어 레지스터)

- 입출력장치가 수행할 내용에 대한 제어 정보와 명령을 저장

 

8.1.2. 장치 드라이버

- 장치 컨트롤러의 동작을 감지하고 제어함으로써, 장치 컨트롤러가 컴퓨터 내부와 정보를 주고 받을 수 있게 하는 프로그램

- 장치의 드라이버를 인식하고 실행할 수 있다면, 제조사와 상관없이, 품명에 상관없이 컴퓨터와 정보를 주고 받기 가능

- 드라이버를 인식할 수 없다면, 내부 정보를 주고 받을 수 없음

 

8.2. 다양한 입출력 방법

- 장치 컨트롤러가 CPU와 정보를 주고 받기 위한 방법으로 프로그램 입출력, 인터럽트 기반 입출력, DMA 입출력이 있음

 

8.2.1. 프로그램 입출력

- 기본적으로 프로그램 속 명령어로 입출력장치를 제어하는 방법

 

메모리 맵 입출력)

- 메모리에 접근하기 위한 주소 공간과 입출력장치에 접근하기 위한 주소 공간을 하나의 주소 공간으로 간주하는 방법

- CPU는 메모리의 주소들이나 장치 컨트롤러의 레지스터들이나 모두 똑같이 메모리 주소를 대하듯 하면 됨

 

고립형 입출력)

- 메모리를 위한 주소 공간과 입출력장치를 위한 주소 공간을 분리하는 방법

- CPU는 입출력장치에 접근하기 위해 메모리에 접근하는 명령어와는 다른 입출력 명령어를 사용

 

8.2.2. 인터럽트 기반 입출력

- 하드웨어 인터럽트는 입출력장치가 아닌 장치 컨트롤러에 의해 발생

- 여러개의 입출력 장치가 입력되었을 때 인터럽트 처리는, 인터럽트를 처리하는 중에 다른 인터럽트를 받아들이지 않기 때문에 순차적으로 처리함

- 현실적으로 더 빨리 처리해야되는 인터럽트가 있음 → 인터럽트 간의 우선순위를 고려하여 우선순위가 높은 순으로 처리

- 우선순위를 반영하여 다중 인터럽트를 처리하는 방법에는 대표적으로 프로그래머블 인터럽트 컨트롤러(PIC)를 이용

- 여러 장치 컨트롤러에 연결되어 하드웨어 인터럽트 요청의 우선 순위를 판별한 뒤, CPU에게 순서를 전달하는 장치임

 

PIC 다중 인터럽트 처리과정

1) PIC에서 인터럽트 요청 신호를 받음

2) 인터럽트 우선순위 판단 뒤 CPU에 처리해야 할 인터럽트 요청 신호 송신

3) CPU에서 PIC로 인터럽트 확인 신호 송신

4) PIC는 데이터 버스를 통해 CPU에 인터럽트 벡터 송신

5) CPU는 인터럽트 벡터를 통해 인터럽트 대상 장치 확인, 인터럽트 서비스 루틴을 실행함

 

8.2.3.  DMA 입출력

- 입출력장치와 메모리가 CPU를 거치지 않고도 상호작용 할 수 있는 방식을 DMA라고 함

- 직접 메모리에 접근할 수 있는 입출력 기능, 시스템 버스에 연결된 DMA 컨트롤러가 필요

- CPU는 입출력의 시작과 끝에만 관여하면 됨

- DMA 컨트롤러는 시스템 버스로 메모리에 직접 접근이 가능하지만, 시스템 버스는 동시 사용이 불가능함

- CPU가 시스템 버스 사용 시, DMA 컨트롤러는 시스템 버스 사용 불가

- DMA 컨트롤러가 시스템 버스 사용시, CPU는 시스템 버스 사용 불가

 

DMA 입출력 처리과정 (일반적인)

1) CPU에서 DMA 컨트롤러에 입출력장치의 주소, 연산, 읽거나 쓰기 메모리 주소 같은 정보로 입출력 작업 지시

2) DMA 컨트롤러는 CPU 대신 장치 컨트롤러와 상호작용하며, 입출력 작업 수행

이때, 필요한 경우 메모리에 직접 접근하여 정보를 읽거나 씀

3) 입출력 작업이 끝나면 DMA 컨트롤러는 CPU 에 인터럽트를 걸어 작업이 끝났음을 알림

 

입출력 버스) 그래픽 카드 연결할 때..

- DMA를 위해 시스템 버스를 너무 자주 사용하면 CPU가 시스템 버스를 잘 이용하지 못함

- DMA 컨트롤러와 장치컨트롤러는 입출력 버스라는 별도의 버스 연결하여 해결 할 수 있음

- 대부분의 입출력 장치들은 시스템버스가 아닌 입출력 버스와 연결됨

- 입출력 버스에는 PCI 버스, PCI Express(PCIe) 버스 등 여러 종류가 있음

 


 

# 진도 기본 숙제(필수) 추가 숙제(선택)
3주차
(1/20 ~ 1/26)
Chapter 06 ~ 08 p. 185의 확인 문제 3번, p. 205의 확인 문제 1번 풀고 인증하기 Ch.07(07-2) RAID의 정의와 종류를 간단히 정리해 보기

 

1. SRAM, DRAM 설명 구분하기

  1) 주로 캐시 메모리로 활용됩니다 - SRAM

  2) 주로 주기억장치로 활용됩니다 - DRAM

  3) 대용량화하기 유리합니다 - DRAM

  4) 집접도가 상대적으로 낮습니다 - SRAM

 

2. 저장 장치 계층 구조 도식도 채우기

레지스터 - 캐시메모리 - 메모리 - 보조기억장치

 

3. RAID 정리하기 (위에서 정리 하였음)

RAID의 정의
- RAID는 주로 하드디스크와 SSD를 사용하는 기술로, 데이터의 안정성 혹은 높은 성능을 위해 여러 개의 물리적 보조기억장치를 하나의 논리적 보조기억장치처럼 사용하는 기술을 의미함


RAID의 종류
- RAID 구성방법을 RAID 레벨이라 표현함 
- RAID 0,  RAID 1,  RAID 2,  RAID 3,  RAID 4,  RAID 5, RAID 6가 있고, 파생된  RAID 10, RAID 50이 있음


RAID 0)
- 여러 개의 보조기억장치에 데이터를 단순히 나누어 저장하는 구성 방식임
- 줄무늬처럼 분산되어 저장된 데이터를 스트라입이라고 하고, 분산하여 저장하는 것을 스트라이핑 이라고함
- 단점으로는 구성된 디스크 중 하나라도 고장나면 모든 하드 디스크 정보를 읽는데 문제가 생길 수 있음


RAID 1)
- 복사본을 만드는 방식임, 완전한 복사본을 만드는 구성이기에 미러링이라고 부름
- 복구가 매우 간단하다는 장점이 있음
- 하드 디스크 수가 제한적이라면, 사용 가능한 용량이 적어짐


RAID 4)
- 완전한 복사본을 만드는 것이 아닌, 오류를 검출하고 복구하기 위한 정보르르 저장한 장치를 두는 구성 방식
- 오류를 검출하고 복구하기 위한 정보를 패리티 비트라고 함
- 패리티를 저장한 장치를 이용하여 다른 장치들의 오류를 검출하고 이상이 있다면 복구함
- RAID 1에 비해 적은 하드디스크로도 데이터를 안전하게 보관할 수 있음


RAID 5)
- RAID 4에서는 새로운 데이터가 저장될 때마다 패리티를 저장하는 디스크에도 데이터를 쓰게되어 병목 현상이 발생함
- 패리티 정보를 분산하여 저장하는 방식으로 RAID 4의 문제인 병목 현상을 해소함


RAID 6)
- 기본적으로 RAID 5와 같으나, 서로 다른 두 개의 패리티를 두는 방식임
- 오류를 검출하고, 복구할 수 있는 수단이 더 생겨, RAID 4와 RAID 5 보다 더 안전한 구성임
- 하지만 패리티가 두 개이므로, 쓰기 속도는 RAID 5보다 느림
- 저장속도를 희생하더라도 더 안전하게 보관하고 싶을 때 사용하는 방식임

 

 

'개인공부 > 혼공학습단 13기 - 컴운' 카테고리의 다른 글

혼공학습단 13기- 5주차  (0) 2025.02.19
혼공학습단 13기- 4주차  (1) 2025.02.11
혼공학습단 13기- 2주차  (0) 2025.02.04
혼공학습단 13기- 1주차  (0) 2025.01.13
혼공학습단 13기 시작  (0) 2025.01.13