学习日记[7]

閱讀時間約 7 分鐘

今天主要搞了计算机硬件相关的基础知识。现代计算机都是以冯诺依曼模型为底层逻辑设计的,也就是说现代计算机包括了四个部分,输入和输出系统,存储器,控制器和算术逻辑单元。但这是底层逻辑,我们是可以将其进行优化的,也就是将算术逻辑单元与控制器集成在一起,并且扩充输入和输出系统的范围。这就是今天我们要探讨的内容。

第一个是CPU(中央处理器),这里面逻辑上包括了,寄存器,算术逻辑单元和控制单元。算术逻辑单元我们好理解,就是计算机中进行数据运算的地方。上面我们讲了,数据运算是包括逻辑运算,移位运算和算术运算的,逻辑运算包括与或非异或,移位运算包括算术移位,循环移位,移位运算。算术运算其实是五则运算,在加减乘除这四则运算上加上了一个除余,也就是求余数的运算。如果我们在进行一个很复杂的运算并且需要存储中间值是,这个寄存器就发挥了作用。实际上来说,发挥作用的是寄存器的一部分——数据寄存器。数据寄存器就是一个存储运算中间值的高速存储单元(最然说这里也是存储,但并不归类于存储器),其他的还有程序计数器和地址寄存器。地址寄存器是用来存储CPU从内存中抽取出来的指令的地址,程序计数器是用来存储当前指令的地址(其实我感觉用状态这个词更好),等到地址更换的时候,程序计数器加一。控制单元其实和冯诺依曼模型中的同名词不太相同,这里的控制单元是指控制其他的子系统,而冯诺依曼模型中的控制单元明显更加全能,它还可以直接控制输入输出设备(实际上,我们是无法直接控制这些的,而是通过接口实现间接控制)。

第二个是存储器。提到存储器,我们不光要知道用什么存储,还得知道如何存储。前面我们知道,用位模式来存储一个数据是很明智的选择,同时也是计算机内部唯一一种选择。所以我们就从位模式出发,把存储空间搞清楚。每一台计算机中,有n个位组成一个叫做字的存储单元,大多数时候是八位,但是依然有特例。每一个存储单元都有唯一一个特征来标记它,这里用的是地址,也就是计算机地(这个词也确实生动形象)。所有的存储单元所代表的位加起来就是空间容量。空间容量的单位有KB,MB等等,KB是2^10,MB是2^20,还有其他什么KMB,MMB也都是上述两种方式的乘积。索要存储的内容和位数之间是成对数关系,前面有讲过。好的,之后呢我们得了解主要存储的类型,包括RAM和ROM,他们都是随机存储,但是RAM可以写入数据,ROM则不行。RAM暂时还可以分为两种,一种是SRAM(静态存储)和DRAM(动态存储),动态存储是用电容器进行信号的存储,放电为1,不放电为0。但我们都知道,电容器时间长是会漏电的,所以DRAM必须每个一点时间就必须得刷新,这是为了保证其中资料的完整性,这也就带来了速度较慢的弊端。SRAM使用触发器门电路来存储信息,触发为1,不触发为0。和DRAM相比,SRAM是一直通电的,只要有需要存储的信息,他就可以快速响应,所以速度也就比DRAM快(至于快多少我就不知道了),而且不需要固定时间刷新内存地址。可如果突然断电了,RAM(不论是DRAM还是SRAM)都无法工作,并且其中的数据也会消失。ROM则不会,即使是断电了,他其中的数据也是会保存在其中而不会丢失,并且因为它只读的特性,ROM相对于RAM的安全性更好,通常情况下会把系统的一些启动程序放在ROM中(当然也会有其他的一些程序在里面)。虽然我们不能通过常用手段将数据写入ROM,但是还是有一些特殊工具可以做到这种事情,比如EEPROM使用电子脉冲来写入数据和擦除数据。还有一种集成在CPU中的存在,就是高速缓冲存储器。这个是介于寄存器和主存之间的中间地带,速度也是如此。在介绍这个东西之前,我们先了解一下他的工作过程,首先CPU检查高速缓冲寄存器中是否存在想要处理的内容,如果有那就直接处理。如果没有,那CPU需要联络内存将所需要处理的内容及其之后的部分进行复制到高速缓冲寄存器之中,之后在执行程序。因为8-2原则,计算机花费8成时间进行2成数据的读取,如果我们高速缓冲寄存器之中有了该内容,那么就相当于节省了8成的时间,速度固然加快。

第三个是输入输出系统,这个系统可以按照是否存储数据分为两类,存储设备和非存储设备。非存储设备相对来说简单一点,它的功能是实现计算机和外界的通信,我们通常所说的键盘鼠标打印机之类的都是非存储设备。存储设备是用来存储或者备份数据,虽然速度较慢,但是可以再断电的情况下存储数据。输入输出系统中的存储设备被称为外存,是指在计算机外部存储数据的设备(硬盘也是属于外存),上面的RAM,ROM,寄存器还是高速缓冲存储器都是内存这个集合中的元素。常见的存储设备的原理有磁存储设备和光存储设备,典型代表分别是磁盘/磁带和光盘。磁盘是一层层磁片压制而成,磁片分为磁道和间隔,磁道之间有分为扇区和间隔,我们通过读写头将数据进行读写。他的性能影响因素大致有三个——角速度,寻道速度和传送速度。角速度好理解,转的快,找的快嘛。寻道速度是读写头查找到索要数据的时间。传送速度是将数据传送的CPU中的所需要花费的时间。另外一种就是光存储设备,它使用激光将模板盘刻出一个又一个小坑,然后再倒模,塑封。一个小坑就是0异或1,用这种方式存储数据,我们又如何读写数据呢?其实上面的制作过程就是写入过程,只不过用的是烧录光盘,相当于一个半成品。读取的过程使用塑封时在其上面覆盖的反射层,坑处会反射两次,非坑处会反射一次,通过他们在标签的上的不同印记来区分0与1,这样就达到了读的效果。

好的,这三个部分我们知道了,那我们就来探究一下它们之间是如何实现通信的吧。CPU和存储之间是通过被称为总线的三类线连接,分别是数据总线,地址总线和控制总线。因为他们其中的每一类都有若干条相同类型的小线,所以不能认为数据总线就是一根线。数据总线中线的具体数量要根据计算机具体存储空间的大小(log2N),地址总线的具体数量是根据每一个字的位数,控制总线的数量是根据索要控制的数量(log2N)。

上面我没有提到输入输出设备,这主要是因为它和存储器与CPU之间的介质不同。输入输出设备可以是磁设备、光设备或者其他设备,而其余两个只能是电子设备。因为介质因素而导致的速度差距是很大的,所以我们需要一个中介来消除这种差距,这个中介就是接口或者叫做控制器。接口分为串行和并行,串行是指一次只能传输一位,而并行一次可以传输多位。常见的有火线,USB,HDMI,雷电等等。火线是顺序结构。usb是串行的树形结构,所有的设备都是连接到一个根部——跟集线器,下面又可以分为很多个集线器,不同设备就连接在集线器上。

上面是计算机导论的内容,下面是数据结构的内容。

我了解了一下线性表,它是相同数据类型组成的有限序列,是从1-N,这里和数组从0开始的形式不同。这里的每一个符号都是地址在线性表中简单的表示。线性表可按存储结构分为两类,按照顺序结构存储的是顺序表,另一种就是不按链式结构存储的链表。顺序表的操作较为简单,删除,求长度,定位,插入,取结点之列的,冒泡排序学会后就变得很简单了。

我的问题,昨天没有写完,我会深刻检讨的。

    avatar-img
    0會員
    20內容數
    这个专题是我个人的学习日记,每日会更新,内容很乱,请多见谅。
    留言0
    查看全部
    avatar-img
    發表第一個留言支持創作者!
    YLAMBDA的沙龍 的其他內容
    9.21号记
    9.19号记
    9.18号记
    第二天
    昨日补分
    9.21号记
    9.19号记
    9.18号记
    第二天
    昨日补分
    你可能也想看
    Google News 追蹤
    Thumbnail
    深入探討操作系統和中央處理單元 (CPU) 的基本概念,涵蓋 OS 的功能、CPU 的運作,以及程式與執行緒的管理。透過生動的比喻,讀者能夠更輕鬆地理解複雜的硬體運作機制,包括記憶體管理和行程間的通訊。本文為想了解計算機科學的讀者提供了一個清晰的入門指南,讓他們掌握多程式協調與虛擬化技術的基本知識。
    Thumbnail
    本文探討記憶體(Memory)和儲存裝置(Storage)之間的主要差異,並解釋它們各自的功能與特性。此外,文章還深入介紹 Process、Thread 及其對 CPU 運作的影響,並結合可視化圖表幫助讀者理解這些複雜概念,特別適合對計算機科學有興趣的讀者。
    此篇文章連結 RAM 與 C語言陣列的關係並提供陣列與for-loop 使用的相關教學 前半段為基本電腦觀念、後半段為實作能力的教學
    Thumbnail
    本文探討了電腦架構的運行方式,使用比喻解釋CPU、記憶體與硬碟的關係,並指出在提升電腦速度時,加記憶體並非總是有效的方法。讀者將瞭解到,解決電腦速度問題需要分析具體的瓶頸,而不是單純依賴擴充記憶體。讓讀者對電腦性能的提升有更深入的理解。
    Thumbnail
    電腦的運作需要仰賴許多的硬體與軟體,統稱電腦系統 (computer system)。這篇文章會概略地介紹電腦系統中的重要角色,以及它們如何相互合作,來完成複雜的工作,比如說讓無所事事的宅宅如我,假日可以躲在房間玩一整天的遊戲。 電腦、程式、與使用者 說到電腦,你的腦中會浮現什麼呢? 是螢幕
    Thumbnail
    <iostream> ​在之前的文章有提到過,<iostream> 是專門處理程式的輸入 (input) 以及輸出 (output) 的函式庫。輸入輸出的對象是以電腦作為主角: 輸入指的是「把資料給電腦」,輸出指的是「從電腦那邊取得資料」。 在這個系列的文章中,程式輸入指的都是從鍵盤輸入資料給電
    Thumbnail
    電腦只做一件事情: 運算。 我們所看到的任何酷酷的應用: 不論是網頁動畫、遊戲特效、甚至是 AI 說的話,全部都 是由電腦的運算結果組合而成的。 首先我們來梳理一下各個名詞之間的關聯: 1. 運算分成兩個部分: 運算子 (運算的名稱,如: 加法) 和運算元 (運算的對象,如: 8)。運算就是對資
    Thumbnail
    01 盧曼使用卡片盒的方式,在數位時代會是什麼樣子? 02 數位時代的資訊管理有兩類:基於資訊內容分配到先定義好的主題領域,或者基於資訊標籤來無序分類,再透過超連結對內容補充。 03 盧曼建立其筆記框架結構的主要特點,是「內部分支的能力」「參考的可能性」「關鍵字主題索引」 04 在實際的盧曼遺
    ※ 認識變數: 變數(variable)是在程式裡面把東西存起來的概念。 基於不讓電腦每次都需要重新運算,把需要花時間運算的東西先存起來,之後再直接拿出來使用,所以我們需要變數。 變數儲存的位置在電腦裡的記憶體。變數就像是一個箱子,記憶體就像是一個倉庫。箱子的名稱就是變數名稱,箱子的內容物就是
    計算機組織不難,但東西很多 這個科目也是我比較不熟悉的,在此之前都是自學,所以會寫的更詳細一點 1.計算機組織在學什麼? 想像計算機的架構就像一個蛋糕有好多層,上半是軟體下半則是硬體,對我來說,軟硬體的兩端是電腦的核心(應用程式&半導體),而中間的每一層都是串接兩端的橋樑;那計算機組織就是要探
    Thumbnail
    深入探討操作系統和中央處理單元 (CPU) 的基本概念,涵蓋 OS 的功能、CPU 的運作,以及程式與執行緒的管理。透過生動的比喻,讀者能夠更輕鬆地理解複雜的硬體運作機制,包括記憶體管理和行程間的通訊。本文為想了解計算機科學的讀者提供了一個清晰的入門指南,讓他們掌握多程式協調與虛擬化技術的基本知識。
    Thumbnail
    本文探討記憶體(Memory)和儲存裝置(Storage)之間的主要差異,並解釋它們各自的功能與特性。此外,文章還深入介紹 Process、Thread 及其對 CPU 運作的影響,並結合可視化圖表幫助讀者理解這些複雜概念,特別適合對計算機科學有興趣的讀者。
    此篇文章連結 RAM 與 C語言陣列的關係並提供陣列與for-loop 使用的相關教學 前半段為基本電腦觀念、後半段為實作能力的教學
    Thumbnail
    本文探討了電腦架構的運行方式,使用比喻解釋CPU、記憶體與硬碟的關係,並指出在提升電腦速度時,加記憶體並非總是有效的方法。讀者將瞭解到,解決電腦速度問題需要分析具體的瓶頸,而不是單純依賴擴充記憶體。讓讀者對電腦性能的提升有更深入的理解。
    Thumbnail
    電腦的運作需要仰賴許多的硬體與軟體,統稱電腦系統 (computer system)。這篇文章會概略地介紹電腦系統中的重要角色,以及它們如何相互合作,來完成複雜的工作,比如說讓無所事事的宅宅如我,假日可以躲在房間玩一整天的遊戲。 電腦、程式、與使用者 說到電腦,你的腦中會浮現什麼呢? 是螢幕
    Thumbnail
    <iostream> ​在之前的文章有提到過,<iostream> 是專門處理程式的輸入 (input) 以及輸出 (output) 的函式庫。輸入輸出的對象是以電腦作為主角: 輸入指的是「把資料給電腦」,輸出指的是「從電腦那邊取得資料」。 在這個系列的文章中,程式輸入指的都是從鍵盤輸入資料給電
    Thumbnail
    電腦只做一件事情: 運算。 我們所看到的任何酷酷的應用: 不論是網頁動畫、遊戲特效、甚至是 AI 說的話,全部都 是由電腦的運算結果組合而成的。 首先我們來梳理一下各個名詞之間的關聯: 1. 運算分成兩個部分: 運算子 (運算的名稱,如: 加法) 和運算元 (運算的對象,如: 8)。運算就是對資
    Thumbnail
    01 盧曼使用卡片盒的方式,在數位時代會是什麼樣子? 02 數位時代的資訊管理有兩類:基於資訊內容分配到先定義好的主題領域,或者基於資訊標籤來無序分類,再透過超連結對內容補充。 03 盧曼建立其筆記框架結構的主要特點,是「內部分支的能力」「參考的可能性」「關鍵字主題索引」 04 在實際的盧曼遺
    ※ 認識變數: 變數(variable)是在程式裡面把東西存起來的概念。 基於不讓電腦每次都需要重新運算,把需要花時間運算的東西先存起來,之後再直接拿出來使用,所以我們需要變數。 變數儲存的位置在電腦裡的記憶體。變數就像是一個箱子,記憶體就像是一個倉庫。箱子的名稱就是變數名稱,箱子的內容物就是
    計算機組織不難,但東西很多 這個科目也是我比較不熟悉的,在此之前都是自學,所以會寫的更詳細一點 1.計算機組織在學什麼? 想像計算機的架構就像一個蛋糕有好多層,上半是軟體下半則是硬體,對我來說,軟硬體的兩端是電腦的核心(應用程式&半導體),而中間的每一層都是串接兩端的橋樑;那計算機組織就是要探