五、中央处理器
CPU的功能和组成
CPU
当 程序 装入内存储器后,自动完成取指令和执行指令任务 的硬件。
CPU的功能
cpu的具体功能如下:
- 指令控制(程序的顺序控制)
- 操作控制(一条指令由若干操作信号实现)
- 时间控制(指令各个操作实施时间的定时)
- 数据加工(算术运算和逻辑运算)
1.指令控制: 控制 程序中的指令按事先规定的顺序
自动地执行。
程序是一个指令序列,这些指令的相互顺序不能任意颠倒,保证机器按顺序执行程序时CPU的首要任务。
2.操作控制: 产生指令执行过程中所需要的操作控制信号
(根据指令的功能发出若干个操作信号)
把各种操作信号送往相应的部件,从而控制这些部件按指令的要求进行动作。
3.时间控制: 对各个操作实施时间的进行定时;保证 计算机 有条不紊
的工作。
4.数据加工: 对数据进行算术运算和逻辑运算处理。 完成数据的加工处理,是CPU的根本任务。
CPU的基本组成
早期的CPU包括 1.运算器,2.控制器 ;
没有cache
现代中央处理机CPU=运算器+控制器+Cache
运算器用于 算逻运算,对数据进行加工
控制器用于 协调并控制计算机各部件执行程序的指令序列。 基本功能包括取指令、分析指令、执行指令
运算器
主要功能:
(1)执行所有的算术运算。
(2)执行所有的逻辑运算,并进行逻辑测试,如零值测试或两个值的比较。
组成:
-
算术逻辑运算单元ALU(ALU是逻辑门,因此数据流过就产生结果)
-
通用寄存器
如AX、BX、CX、DX等,用于存放操作数(包括源操作数、目的操作数及中间结果)和各种地址信息等。 -
数据缓冲寄存器DR
用于暂存从主存读来的数据(这个数据不能存放在通用寄存器中,否则会破坏其原有内容) -
程序状态字寄存器PSWR(状态条件寄存器)
保留由算术逻辑运算指令或测试指令的结果而建立的各种状态信息,如溢出标志(OP)、符号标志(SF)、零标志(ZF)、进位标志(CF)等。PSW中的这些位参与并决定微操作的形成
通用寄存器Ri
:当ALU执行算数运算或逻辑运算时,为ALU提供一个工作区。
数据缓冲寄存器DR
暂时存放ALU的运算结果,或由数据存储器读出的一个数据字,或来自外部接口的一个数据字。
如:两个操作数分别来自主存和R0,最后结果存回R0,那么从主存中取来的操作数直接放入暂存器,就不会破坏运算前R0的内容
作用:
- 作为ALU运算结果和通用寄存器之间信息传送中,时间上的缓冲;
- 补偿CPU和内存、外围设备之间在操作速度上的差别。
状态字寄存器PSWR
保存由算术指令和逻辑指令运行或测试的结果 建立的各种条件码内容。如:溢出标志,符号标志等
除此之外,还保存中断和系统工作状态等信息,以便使CPU和系统能及时了解机器运行状态和程序运行状态。
控制器
控制器用于协调并控制计算机各部件执行程序的指令序列。
基本功能包括取指令、分析指令、执行指令
-
取指令:从指令Cache中取出一条指令,并指出下条指令的在指存中的地址
自动形成指令地址;自动发出取指令的命令。 -
分析指令:对指令进行译码和分析,并产生相应的控制信号,以完成规定的动作
操作码译码(分析本条指令要完成什么操作); 产生操作数的有效地址。 -
执行指令:指挥并控制CPU、数存和输入输出设备间数据的流动方向
根据分析指令得到的“操作命令”和“操作数地址”, 形成操作信号控制序列,控制运算器、存储器以及I/O 设备完成相应的操作。 -
中断处理:管理总线及输入输出;处理异常情况(如掉电)和特殊情况
组成:
- 程序计数器PC:用于指出下一条指令在主存中的存放地址。
- 指令寄存器IR:用于保存当前正在执行的那条指令。
- 指令译码器:仅对
操作码字段
进行译码,向控制器提供特定的操作信号。 - 时序发生器: 用于产生各种时序信号,它们都是由统一时钟(CLOCK)分频得到。
- 操作控制器: 根据IR的内容(指令)、PSW的内容(状态信息)及时序信号,产生控制整个计算机系统所需的各种控制信号
程序计数器PC
程序计数器PC(Programming Counter)用来存放正在执行的指令的地址 或者 接着将要执行的下一条指令的地址。
- 顺序执行时:每执行一条指令,PC的值应加1
- 要改变程序执行顺序的情况时:一般由转移类指令将转移目标地址送往PC ,可实现程序的转移。
指令寄存器IR 和 指令译码器
指令寄存器IR(Instruction Register)用来存放从主存中取出的待执行的指令。(也可以认为是 当前正在执行的那条指令)
指令译码器:仅对操作码字段进行译码
,向控制器提供特定的操作信号。
注意:
在执行该指令的过程中,指令寄存器的内容不允许发生变化,以保证实现指令的全部功能。
数据地址寄存器AR
保存当前CPU所访问的数据cache存储器单元的地址。
操作控制器和时序产生器
数据通路:寄存器之间传送信息的通路。
操作控制器和时序产生器用于解决:信息如何在各寄存器之间传送?数据的流动是由什么部件控制的?
(一)、操作控制器
根据指令操作码和时序信号,产生各种操作控制信号;选择正确的数据通路。
根据IR的内容(指令)、PSW的内容(状态信息)及时序信号,产生控制整个计算机系统所需的各种控制信号
分为:(根据设计方法不同)
- 时序逻辑型/硬布线控制器,采用
时序逻辑
技术来实现 - 存储逻辑型/微程序控制器,采用
存储逻辑
技术来实现 - 混合型:前两者的组合
硬布线控制器
硬布线控制器,它是采用时序逻辑技术来实现的,其操作控制信号形成部件是由门电路组成的复杂树形网络。这种方法是分立元件时代的产物,以使用最少器件数和取得最高操作速度为设计目标。
硬布线控制器的最大优点是速度快,但是时序、控制信号形成部件的结构不规整,使得设计、调试、维修较困难,难以实现设计自动化。
微程序控制器
微程序控制器是采用存储逻辑来实现的,也就是把微操作信号代码化,使每条机器指令转化成为一段微程序并存入一个专门的存储器(控制存储器)中,微操作控制信号由微指令产生。这是我们学习的重点。
微程序控制器的设计思想和时序逻辑设计思想截然不同。它具有设计规整、调试、维修以及更改、扩充指令方便的优点,易于实现自动化设计,已成为当前控制器的主流。但是,由于它增加了一级控制存储器,所以指令执行速度比组合逻辑控制器慢。
混合型
这种控制器称为PLA控制器,它是吸收前两种的设计思想来实现的。
(二)、时序产生器
操作控制器产生的控制信号必须定时,为此必须有时序产生器。因为计算机高速地进行工作,每一个动作的时间是非常严格的,不能太早也不能太迟。
时序产生器的作用,就是对各种操作信号实施时间控制。
指令周期
基本概念
指令周期: 取出并执行一条指令所需的全部时间。分为取值周期和执行周期。
- 取值周期:取指和分析指令
- 执行周期:执行指令
因此 指令周期也就是 取指令、分析指令到执行完该指令所需的全部时间。
机器周期/CPU周期/总线周期: 通常把一条指令周期划分为若干个机器周期,每个机器周期完成一个基本操作。
注意
-
不同的指令,可能包含不同数目的机器周期。
(比如间接寻址就比直接寻址多一次操作,也就是多一个机器周期)
-
以主存的工作周期(存取周期)为基础来规定CPU周期,比如,可以用CPU读取一个指令字的最短时间来规定CPU周期
时钟周期/节拍脉冲/T脉冲: 在一个机器周期内,要完成若干个微操作。这些微操作有的可以同时执行,有的需要按先后次序串行执行。因而需要把一个机器周期分为若干个相等的时间段,每一个时间段称为一个节拍,就称为时钟周期。
注:
- 不同的机器周期所包含的时钟周期不同。
- 节拍/时钟周期 是不可分割的最小时间单位。
- 节拍的宽度取决于CPU完成一次基本的微操作的时间,如:ALU完成一次正确的运算,寄存器间的一次数据传送等。
节拍常用具有一定宽度的电位信号表示,称之为节拍电位。
指令周期流程
MOV指令的指令周期
取指
- 程序计数器PC中装入第一条指令地址101(八进制);
- PC的内容被放到指令地址总线ABUS(I)上,并启动读命令;
- 从101号地址读出的MOV指令通过指令总线IBUS装入指令寄存器IR;
- 程序计数器内容加1,变成102,为取下一条指令做好准备;
- 指令寄存器中的操作码(OP)被译码;
- CPU识别出是MOV指令,至此,取指周期即告结束。
执行MOV R0,R1
(把R1的数据复制到R0)
- 操作控制器OC送出控制信号到通用寄存器,选择R1(10)作源寄存器,选择R0作目标寄存器;
- OC送出控制信号到ALU,指定ALU做传送操作(R1);
- OC送出控制信号,打开ALU输出三态门,将ALU输出R1送到数据总线DBUS上。
注意,任何时候DBUS上只能有一个数据。
- OC送出控制信号,将DBUS上的数据打入到数据缓冲寄存器DR(10);
- OC送出控制信号,将DR中的数据10打入到目标寄存器R0,R0的内容由00变为10。
至此,MOV指令执行结束。
LAD指令的指令周期
LAD R1, 6
(将6放入R1中)
-
操作控制器OC发出控制命令打开IR输出三态门,将指令中的直接地址码6放到数据总线DBUS上;
-
OC发出操作命令,将地址码6装入数存地址寄存器AR;
-
OC发出读命令,将数存6号单元中的数100读出到DBUS上;
-
OC发出命令,将DBUS上的数据100装入缓冲寄存器DR;
-
OC发出命令,将DR中的数100装入通用寄存器R1,原来R1中的数10被冲掉。至此,LAD指令执行周期结束
ADD指令的指令周期
注意: 如果都是寄存器,只需要两个CPU周期
ADD R1,R2****
-
操作控制器OC送出控制命令到通用寄存器,选择R1做源寄存器,R2做目标寄存器
-
OC 送出控制命令到ALU,指定ALU做R1(100)和R2(20)的加法操作
-
OC送出控制命令,打开ALU输出三态门,运算结果120放到DBUS上
-
OC送出控制命令,将DBUS上数据打入缓冲寄存器DR;ALU产生的进位信号保存状态字寄存器在PSW中
-
OC送出控制命令,将DR(120)装入R2,R2中原来的内容20被冲掉。
至此ADD指令执行周期结束
STO指令的指令周期
STO R2, (R3)
(把R2的内容存储到R3)
- 操作控制器OC送出操作命令到通用寄存器,选择R3=30为数据存储器的地址单元;
- OC发出操作命令,打开通用寄存器输出三态门将地址30放到DBUS上;
- OC发出操作命令,将地址30打入AR,并进行数存地址译码
- OC发出操作命令到通用寄存器,选择R2=120,作为数存的写入数据;
- OC发出操作命令,打开通用寄存器输出三态门,将数据120放到DBUS上。
- OC发出操作命令,将数据120写入数存30号单元,它原先的数据40被冲掉。至此,STO指令执行周期结束。
JMP指令的指令周期
JMP 101
(跳转到101)
- OC发生操作控制命令,打开指令寄存器IR的输出三态门,将IR中的地址码101发送到DBUS上;
- OC发出操作控制命令,将DBUS上的地址码101打入到程序计数器PC中,PC中的原先内容106被更换。于是下一条指令不是从106号单元取出,而是转移到101号单元取出。至此JMP指令执行周期结束。
注意:DBVS(地址总线)是单进程
用方框图语言表示的指令周期
引入目的主要是为了教学目的(控制器设计)
方法:
方框:一个CPU周期(方框内容——数据通路操作或控制操作)
菱形框——判别或测试
流线——表示指令的运行顺序
~ —— 公操作:指令执行完毕后,CPU的操作(一般是对外设的请求)
前边所讲述的5种操作的框图描述
例子:
总结:
一条指令包括一个取指周期和一个或多个的执行周期组成
在每个CPU周期中数据通路是明确的
数据通路的建立及操作受到操作控制器的控制,当然决定于是什么指令。
习题
习题:CPU结构如图所示,其中一个累加寄存器AC,一个状态条件寄存器和其它四个寄存器,各部分之间的连线表示数据通路,箭头表示信息传送方向。
(1) 标明图中四个寄存器的名称。
(2) 简述指令从主存取到控制器的数据通路。
(3) 数据在运算器和主存之间进行存/取访问的数据通路。
(1)
(2)PC→AR→主存 → 缓冲寄存器DR → 指令寄存器IR → 操作控制器
(3)存储器读:M → DR → ALU → AC
存储器写:AC → DR → M
时序产生器和控制方式(简单看)
时序信号的作用和体制
CPU中也有一个类似“作息时间”的东西,称为时序信号。计算机所以能够准确、迅速、有条不紊的工作,正是因为CPU中有一个时序信号发生器。
作用:
-
CPU中的控制器用它控制机器的工作节奏,以及按时间顺序规定每一个时序信号的任务。
-
CPU可以用时序信号/周期信息来辨认从内存中取出的是指令(取指)还是数据(执行)。
-
一个CPU周期中时钟脉冲对CPU的动作有严格的约束。
-
控制信号是时间因素(时序)和空间因素(部件位置)的函数
体制
组成计算机硬件的器件特性决定了时序信号的基本体制是电位—脉冲制。
这种体制最明显的一个例子,就是当实现寄存器之间的数据传送时,数据加在触发器的电位输入端,而打入数据的控制信号加在触发器的时钟输入端。
硬布线控制器的时序信号
采用主状态周期—节拍电位(CPU周期)—节拍脉冲(时钟周期)三级体制。
- 主状态周期可包含若干个节拍电位,是最大的时间单位
- 一个节拍电位表示一个CPU周期的时间,它表示了一个较大的时间单位
- 在一个节拍电位中又包含若干个节拍脉冲(时钟周期),以表示较小的时间单位
特点:
时序信号产生电路复杂
微程序控制器的时序信号
节拍电位(CPU周期)—节拍脉冲(时钟周期)二级体制,
它只有一个节拍电位( CPU周期),在节拍电位中又包含若干个节拍脉冲(时钟周期)。
特点
- 利用微程序顺序执行来实现微操作
- 时序信号产生电路简单
时序信号产生器
功能:产生时序信号
- 各型计算机产生时序电路不相同
- 大、中型计算机的时序电路复杂,微型计算机的时序电路简单
构成:
- 时钟源
- 环形脉冲发生器
- 节拍脉冲和读写时序译码逻辑
- 启停控制逻辑
控制方式
机器指令所包含的CPU周期数反映了指令的复杂程度,即操作控制信号的多少。
不同的CPU周期,操作信号的数目和出现的先后次序也不相同。
控制器的控制方式
控制产生不同操作序列时序信号的方法。
常用的控制方式分为以下几种:
- 同步控制方式
- 异步控制方式
- 联合控制方式
同步控制方式
指令的机器周期和时钟周期数不变
同步控制方式可选取如下方案:
-
完全统一的机器周期执行各种不同的指令。
-
采用不定长机器周期。(利用28原则)
将大多数操作安排在一个较短的机器周期内完成,
对某些时间紧张的操作,则采取延长机器周期的办法来解决。 -
中央控制与局部控制的结合。
将大部分指令安排在固定的机器周期完成,称为中央控制。
对少数复杂指令采用另外的时序进行定时,称为局部控制。
异步控制方式
每条指令需要多长时间就占多长时间(按需分配)。
意味着每条指令的指令周期可由多少不等的机器周期数组成。如应答信号。
联合控制方式
大部分指令在固定的周期内完成,少数难以确定的操作采用异步方式。
-
大部分操作序列安排在固定的机器周期中,对某些时间难以确定的操作则以执行部件的“回答”信号作为本次操作的结束。
例如CPU访问主存时,依靠其送来的“READY”信号作为读/写周期的结束。 -
机器周期的节拍脉冲(时钟周期)固定,但是各指令的机器周期数不固定(微程序控制器采用。)
小结
CPU是计算机的中央处理部件,具有指令控制、操作控制、时间控制、数据加工等基本功能。
早期的CPU由运算器和控制器两大部分组成。随着高密度集成电路技术的发展,当今的CPU芯片变成运算器、cache和控制器三大部分,其中还包括浮点运算器、存储管理部件等。
CPU中至少要有如下六类寄存器:指令寄存器、程序计数器、地址寄存器、数据缓冲寄存器、通用寄存器、状态条件寄存器。
CPU从存储器取出一条指令并执行这条指令的时间和称为指令周期。
CISC中,由于各种指令的操作功能不同,各种指令的指令周期是不尽相同的。划分指令周期,是设计操作控制器的重要依据。
RISC中,由于流水执行,大部分指令在一个机器周期完成。时序信号产生器提供CPU周期(也称机器周期)所需的时序信号。操作控制器利用这些时序信号进行定时,有条不紊地取出一条指令并执行这条指令。
RISC: 精简指令系统计算机
⭐操作控制器
⭐流水CPU
并行处理技术
并行性(Parrelism)分为狭义和广义两个概念:
- 狭义:问题中具有可以同时进行运算或操作的特性
例:在相同时延的条件下,用n位运算器进行n位并行运算速度几乎是一位运算器进行n位串行运算的n倍
- 广义: 只要在同一时刻(同时性)或在同一时间间隔内(并发性)完成两种或两种以上性质相同或不同的工作,他们在时间上相互重叠,都体现了并行性。
并行性有三种形式:
-
时间并行(重叠): 让多个处理过程在时间上相互错开,轮流使用同一套硬件设备的各个部件,以加快硬件周转而赢得速度。
实现方式就是采用流水处理部件 -
空间并行(资源重复):以数量取胜,真正的体现同时性
LSI和VLSI为其提供了技术保证 -
时间+空间并行
Pentium中采用了超标量流水线技术
指令流水
一条指令的执行过程可以分成多个阶段(或过程)。根据计算机的不同,具体的分法不同。
设一条指令的执行过程分为:取指,分析,执行三部分:
- 取指:根据PC内容访问主存储器,取出一条指令送到IR中。
- 分析:对指令操作码进行译码,按照给定的寻址方式和地址字段中的内容形成操作数的有效地址EA,并从有效地址EA中取出操作数。
- 执行:根据操作码字段,完成指令规定的功能,即把运算结果写到通用寄存器或主存中。
设取指、分析、执行3个阶段的时间都相等,用t表示 ,按以下几种执行方式分析n条指令的执行时间:
-
顺序执行方式:总耗时
传统冯·诺依曼机采用顺序执行方式,又称串行执行方式。
优点:控制简单,硬件代价小。
缺点:执行指令的速度较慢,在任何时刻,处理机中只有一条指令在执行,各功能部件的利用率很低。 -
一次重叠执行方式:总耗时
优点:程序的执行时间缩短了1/3,各功能部件的利用率明显提高。 缺点:需要付出硬件上较大开销的代价,控制过程也比顺序执行复杂了。 -
二次重叠执行方式:总耗时
与顺序执行方式相比,指令的执 行时间缩短近2/3。
这是一种理想的指令执行方式,在正常情况下,处理机中同时有3条指令在执行。
注意:也可以把每条指令的执行过程分成4个或5个阶段,分成5个阶段是比较常见的做法。
流水线的表示方法
-
指令执行过程图:主要用于分析指令执行过程以及影响流水线的因素
-
流水线CPU时空图:主要用于分析流水线的性能
流水CPU的结构
流水计算机的系统组成
- 存储器体系:主存采用多体交叉存储器;Cache
- 流水方式CPU:指令部件、指令队列、执行部件
指令流水线
指令队列:FIFO
执行部件:可以有多个采用流水线方式构成的算术逻辑部件构成,可以将定点运算部件和浮点运算部件分开。
工作流程对比:
IF(Instruction Fetch取指)
ID(Instruction Decode指令译码)
EX(Execution执行)
WB(Write Back写回)
流水线的性能指标
理想情况:各阶段花费时间相同;每个阶段结束后能立即进入下一阶段。
-
吞吐率:单位时间内流水线完成的任务数量
-
加速比:不使用流水线的耗时/ 使用流水线的耗时
-
流水线效率:
吞吐率
指在单位时间内流水线所完成的任务数量,或是输出结果的数量。
设任务数为n;处理完成n个任务所用的时间为,则计算流水线吞吐率(TP)的最基本的公式为
理想情况下,流水线的时空图如下:
一条指令的执行分为k个阶段,每个阶段耗时t (一般取△t =一个时钟周期)
则流水线执行时间:
流水线的实际吞吐率为:
当连续输入的任务时,得最大吞吐率为。
加速比
完成同样一批任务,不使用流水线所用的时间与使用流水线所用的时间之比。
设表示不使用流水线时的执行时间,即顺序执行所用的时间;表示使用流水线时的执行时间
则计算流水线加速比(S)的基本公式为:
理想情况下,流水线的时空图如下:
一条指令的执行分为k个阶段,每个阶段耗时t (一般取△t =一个时钟周期)
单独完成一个任务耗时为,则顺序完成n个任务耗时,又因
则实际加速比为
当连续输入的任务时,最大加速比为。
流水线效率E
流水线的设备利用率称为流水线的效率。在时空图上,流水线的效率定义为完成n个任务占用的时空区有效面积与n个任务所用的时间与k个流水段所围成的时空区总面积之比。
则流水线效率(E)的一般公式为 =
理想情况下,流水线的时空图如下:
一条指令的执行分为k个阶段,每个阶段耗时t (一般取△t =一个时钟周期)
当连续输入的任务时,最高效率为。
流水线的影响因素
流水线的瓶颈:流水线中有速度慢的段
- 再分成几个段
- 用资源重复的方法也可以解决
影响流水线的因素有三种:
- 结构相关(资源冲突)
- 数据相关(数据冲突)
- 控制相关(控制冲突)
资源冲突/结构冲突
冲突形式:
多条指令进入流水线后在同一时钟周期内争用同一功能部件,但该部件又是必须互斥的来使用。
解决办法:
- 后边指令拖一拍(一个时钟周期)再推进
- 资源重复配置:增设一个功能部件
数据冲突
冲突形式:
在一个程序中,存在必须等前一条指令执行完才能执行后一条指令的情况,则这两条指令即为数据相关。
解决办法:
- 推后后继指令对相关单元的读操作,分为:硬件阻塞和软件插入“NOP”(空操作)
- 数据旁路技术。
- 编译优化:通过编译器调 整指令顺序来解决数据相关。
冲突的基本类型:
- RAW(Read After Write)
- WAW(Write After Write)
- WAR(Write After Read)
注意: 在“按序发射,按序完成”中 只可能出现 写后读
。
RAW写后读:后面指令用到前面指令所写的数据
- 解决办法: 推后后继指令对相关单元的读操作。实现分为:硬件阻塞和软件插入“NOP”(空操作)。
WAW写后写
两条指令写同一个单元
在简单流水线中没有此类相关,因为不会乱序执行
WAR读后写
后面指令覆盖前面指令所读的单元
在简单流水线中没有此类相关
解决办法:
- 可以推后后继指令对相关单元的读操作
- 数据旁路技术:设置相关的直接通路(Forwarding)向前或者定向传送技术
控制冲突
冲突形式:
当流水线遇到转移指令和其他改变PC值的指令而造成断流时,会引起控制相关。
(比如if else判断,不知道是流水if子块 还是else子块)
解决办法:
- 延迟转移法
- 转移预测法
流水线的分类
一个计算机系统可以在不同的并行等级上采用流水线技术。常见的流水线形式有
- 指令流水线:指指令步骤的并行。将指令流的处理过程划分为取指令、译码、取操作数、执行、写回等几个并行处理的过程段。
- 算术流水线:指运算操作步骤的并行。如流水加法器、流水乘法器、流水除法器等。
- 处理机流水线(宏流水线):指程序步骤的并行。由一串级联的处理机构成流水线的各个过程段,每台处理机负责某一特定的任务。
Pentium CPU
非固定长度指令格式,9种寻址方式,191条指令,兼具有RISC和CISC特性,不过我们还是将其看成CISC
SL电源管理技术
提供了更加灵活的存储器寻址结构,可以支持传统的4k大小的页面,也可以支持4M大小的页面
动态转移预测技术
Pentium结构图
MESI(Modified Exclusion Share Invalid)
BTB(Branch Target Buffer)
TLB(Translation Lookaside Buffer)
本文作者:kingwzun
本文链接:https://www.cnblogs.com/kingwz/p/16831651.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
2021-10-27 JAVA.long.String类
2021-10-27 JAVA常用方法及其常用重写