精华内容
下载资源
问答
  • 通道(Channel)是java.nio的第二个主要创新。它们既不是一个扩展也不是一项增强,而是全新、极好的Java I/O示例,提供与I/O服务的直接连接。Channel用于在字节缓冲区和位于通道另一侧...那么相应地有种类型的通道也...

    通道(Channel)是java.nio的第二个主要创新。它们既不是一个扩展也不是一项增强,而是全新、极好的Java I/O示例,提供与I/O服务的直接连接。Channel用于在字节缓冲区和位于通道另一侧的实体(通常是一个文件或套接字)之间有效地传输数据。

    channel介绍

    通道是访问I/O服务的导管。I/O可以分为广义的两大类别:File I/O和Stream I/O。那么相应地有两种类型的通道也就不足为怪了,它们是文件(file)通道和套接字(socket)通道。我们看到在api里有一个FileChannel类和三个socket通道类:SocketChannel、ServerSocketChannel和DatagramChannel。

    通道可以以多种方式创建。Socket通道有可以直接创建新socket通道的工厂方法。但是一个FileChannel对象却只能通过在一个打开的RandomAccessFile、FileInputStream或FileOutputStream对象上调用getChannel( )方法来获取。你不能直接创建一个FileChannel对象。

    我们先来看一下FileChannel的用法:

    // 创建文件输出字节流 FileOutputStream fos = new FileOutputStream("data.txt");

    //得到文件通道 FileChannel fc = fos.getChannel();

    //往通道写入ByteBuffer fc.write(ByteBuffer.wrap("Some text ".getBytes()));

    //关闭流 fos.close();

    //随机访问文件 RandomAccessFile raf = new RandomAccessFile("data.txt", "rw");

    //得到文件通道 fc = raf.getChannel();

    //设置通道的文件位置 为末尾 fc.position(fc.size());

    //往通道写入ByteBuffer fc.write(ByteBuffer.wrap("Some more".getBytes()));

    //关闭 raf.close();

    //创建文件输入流 FileInputStream fs = new FileInputStream("data.txt");

    //得到文件通道 fc = fs.getChannel();

    //分配ByteBuffer空间大小 ByteBuffer buff = ByteBuffer.allocate(BSIZE);

    //从通道中读取ByteBuffer fc.read(buff);

    //调用此方法为一系列通道写入或相对获取 操作做好准备 buff.flip();

    //从ByteBuffer从依次读取字节并打印 while (buff.hasRemaining()){

    System.out.print((char) buff.get());

    }

    fs.close();

    再来看一下SocketChannel:

    SocketChannel sc = SocketChannel.open( );

    sc.connect (new InetSocketAddress ("somehost", someport));

    ServerSocketChannel ssc = ServerSocketChannel.open( );

    ssc.socket( ).bind (new InetSocketAddress (somelocalport));

    DatagramChannel dc = DatagramChannel.open( );

    可以设置 SocketChannel 为非阻塞模式(non-blocking mode).设置之后,就可以在异步模式下调用connect(), read() 和write()了。如果SocketChannel在非阻塞模式下,此时调用connect(),该方法可能在连接建立之前就返回了。为了确定连接是否建立,可以调用finishConnect()的方法。像这样:

    socketChannel.configureBlocking(false);

    socketChannel.connect(new InetSocketAddress("http://jenkov.com", 80));

    while(! socketChannel.finishConnect() ){

    //wait, or do something else...}

    服务器端的使用经常会考虑到非阻塞socket通道,因为它们使同时管理很多socket通道变得更容易。但是,在客户端使用一个或几个非阻塞模式的socket通道也是有益处的,例如,借助非阻塞socket通道,GUI程序可以专注于用户请求并且同时维护与一个或多个服务器的会话。在很多程序上,非阻塞模式都是有用的。

    调用finishConnect( )方法来完成连接过程,该方法任何时候都可以安全地进行调用。假如在一个非阻塞模式的SocketChannel对象上调用finishConnect( )方法,将可能出现下列情形之一:connect( )方法尚未被调用。那么将产生NoConnectionPendingException异常。

    连接建立过程正在进行,尚未完成。那么什么都不会发生,finishConnect( )方法会立即返回false值。

    在非阻塞模式下调用connect( )方法之后,SocketChannel又被切换回了阻塞模式。那么如果有必要的话,调用线程会阻塞直到连接建立完成,finishConnect( )方法接着就会返回true值。在初次调用connect( )或最后一次调用finishConnect( )之后,连接建立过程已经完成。那么SocketChannel对象的内部状态将被更新到已连接状态,finishConnect( )方法会返回true值,然后SocketChannel对象就可以被用来传输数据了。

    连接已经建立。那么什么都不会发生,finishConnect( )方法会返回true值。

    Socket通道是线程安全的。并发访问时无需特别措施来保护发起访问的多个线程,不过任何时候都只有一个读操作和一个写操作在进行中。请记住,sockets是面向流的而非包导向的。它们可以保证发送的字节会按照顺序到达但无法承诺维持字节分组。某个发送器可能给一个socket写入了20个字节而接收器调用read( )方法时却只收到了其中的3个字节。剩下的17个字节还是传输中。由于这个原因,让多个不配合的线程共享某个流socket的同一侧绝非一个好的设计选择。

    最后再看一下DatagramChannel:

    最后一个socket通道是DatagramChannel。正如SocketChannel对应Socket,ServerSocketChannel对应ServerSocket,每一个DatagramChannel对象也有一个关联的DatagramSocket对象。不过原命名模式在此并未适用:“DatagramSocketChannel”显得有点笨拙,因此采用了简洁的“DatagramChannel”名称。

    正如SocketChannel模拟连接导向的流协议(如TCP/IP),DatagramChannel则模拟包导向的无连接协议(如UDP/IP):

    创建DatagramChannel的模式和创建其他socket通道是一样的:调用静态的open( )方法来创建一个新实例。新DatagramChannel会有一个可以通过调用socket( )方法获取的对等DatagramSocket对象。DatagramChannel对象既可以充当服务器(监听者)也可以充当客户端(发送者)。如果你希望新创建的通道负责监听,那么通道必须首先被绑定到一个端口或地址/端口组合上。绑定DatagramChannel同绑定一个常规的DatagramSocket没什么区别,都是委托对等socket对象上的API实现的:

    DatagramChannel channel = DatagramChannel.open( );

    DatagramSocket socket = channel.socket( );

    socket.bind (new InetSocketAddress (portNumber));

    DatagramChannel是无连接的。每个数据报(datagram)都是一个自包含的实体,拥有它自己的目的地址及不依赖其他数据报的数据净荷。与面向流的的socket不同,DatagramChannel可以发送单独的数据报给不同的目的地址。同样,DatagramChannel对象也可以接收来自任意地址的数据包。每个到达的数据报都含有关于它来自何处的信息(源地址)。

    一个未绑定的DatagramChannel仍能接收数据包。当一个底层socket被创建时,一个动态生成的端口号就会分配给它。绑定行为要求通道关联的端口被设置为一个特定的值(此过程可能涉及安全检查或其他验证)。不论通道是否绑定,所有发送的包都含有DatagramChannel的源地址(带端口号)。未绑定的DatagramChannel可以接收发送给它的端口的包,通常是来回应该通道之前发出的一个包。已绑定的通道接收发送给它们所绑定的熟知端口(wellknown port)的包。数据的实际发送或接收是通过send( )和receive( )方法来实现的。

    注意:假如您提供的ByteBuffer没有足够的剩余空间来存放您正在接收的数据包,没有被填充的字节都会被悄悄地丢弃。

    Scatter/Gather

    通道提供了一种被称为Scatter/Gather的重要新功能(有时也被称为矢量I/O)。它是指在多个缓冲区上实现一个简单的I/O操作。对于一个write操作而言,数据是从几个缓冲区按顺序抽取(称为gather)并沿着通道发送的。缓冲区本身并不需要具备这种gather的能力(通常它们也没有此能力)。该gather过程的效果就好比全部缓冲区的内容被连结起来,并在发送数据前存放到一个大的缓冲区中。对于read操作而言,从通道读取的数据会按顺序被散布(称为scatter)到多个缓冲区,将每个缓冲区填满直至通道中的数据或者缓冲区的最大空间被消耗完。

    scatter / gather经常用于需要将传输的数据分开处理的场合,例如传输一个由消息头和消息体组成的消息,你可能会将消息体和消息头分散到不同的buffer中,这样你可以方便的处理消息头和消息体。

    Scattering Reads是指数据从一个channel读取到多个buffer中。如下图描述:

    代码示例如下:

    ByteBuffer header = ByteBuffer.allocateDirect (10);

    ByteBuffer body = ByteBuffer.allocateDirect (80);

    ByteBuffer [] buffers = { header, body };

    int bytesRead = channel.read (buffers);

    Gathering Writes是指数据从多个buffer写入到同一个channel。如下图描述:

    代码示例如下:

    ByteBuffer header = ByteBuffer.allocateDirect (10);

    ByteBuffer body = ByteBuffer.allocateDirect (80);

    ByteBuffer [] buffers = { header, body };

    channel.write(bufferArray);

    使用得当的话,Scatter/Gather会是一个极其强大的工具。它允许你委托操作系统来完成辛苦活:将读取到的数据分开存放到多个存储桶(bucket)或者将不同的数据区块合并成一个整体。这是一个巨大的成就,因为操作系统已经被高度优化来完成此类工作了。它节省了您来回移动数据的工作,也就避免了缓冲区拷贝和减少了您需要编写、调试的代码数量。既然您基本上通过提供数据容器引用来组合数据,那么按照不同的组合构建多个缓冲区阵列引用,各种数据区块就可以以不同的方式来组合了。下面的例子好地诠释了这一点:

    public class GatheringTest {

    private static final String DEMOGRAPHIC = "output.txt";

    public static void main (String [] argv) throws Exception {

    int reps = 10;

    if (argv.length > 0) {

    reps = Integer.parseInt(argv[0]);

    }

    FileOutputStream fos = new FileOutputStream(DEMOGRAPHIC);

    GatheringByteChannel gatherChannel = fos.getChannel();

    ByteBuffer[] bs = utterBS(reps);

    while (gatherChannel.write(bs) > 0) {

    // 不做操作,让通道把数据输出到文件写完 }

    System.out.println("Mindshare paradigms synergized to " + DEMOGRAPHIC);

    fos.close();

    }

    private static String [] col1 = { "Aggregate", "Enable", "Leverage",

    "Facilitate", "Synergize", "Repurpose",

    "Strategize", "Reinvent", "Harness"

    };

    private static String [] col2 = { "cross-platform", "best-of-breed", "frictionless",

    "ubiquitous", "extensible", "compelling",

    "mission-critical", "collaborative", "integrated"

    };

    private static String [] col3 = { "methodologies", "infomediaries", "platforms", "schemas", "mindshare", "paradigms", "functionalities", "web services", "infrastructures" };

    private static String newline = System.getProperty ("line.separator");

    private static ByteBuffer [] utterBS (int howMany) throws Exception {

    List list = new LinkedList();

    for (int i = 0; i < howMany; i++) {

    list.add(pickRandom(col1, " "));

    list.add(pickRandom(col2, " "));

    list.add(pickRandom(col3, newline));

    }

    ByteBuffer[] bufs = new ByteBuffer[list.size()];

    list.toArray(bufs);

    return (bufs);

    }

    private static Random rand = new Random( );

    /*** 随机生成字符* @param strings* @param suffix* @return* @throws Exception*/

    private static ByteBuffer pickRandom (String [] strings, String suffix) throws Exception {

    String string = strings [rand.nextInt (strings.length)];

    int total = string.length() + suffix.length( );

    ByteBuffer buf = ByteBuffer.allocate (total);

    buf.put (string.getBytes ("US-ASCII"));

    buf.put (suffix.getBytes ("US-ASCII"));

    buf.flip( );

    return (buf);

    }

    }

    输出为:Reinvent integrated web services

    Aggregate best-of-breed platforms

    Harness frictionless platforms

    Repurpose extensible paradigms

    Facilitate ubiquitous methodologies

    Repurpose integrated methodologies

    Facilitate mission-critical paradigms

    Synergize compelling methodologies

    Reinvent compelling functionalities

    Facilitate extensible platforms

    虽然这种输出没有什么意义,但是gather确是很容易的让我们把它输出出来。

    Pipe

    java.nio.channels包中含有一个名为Pipe(管道)的类。广义上讲,管道就是一个用来在两个实体之间单向传输数据的导管。

    Java NIO 管道是2个线程之间的单向数据连接。Pipe有一个source通道和一个sink通道。数据会被写到sink通道,从source通道读取。Pipe类创建一对提供环回机制的Channel对象。这两个通道的远端是连接起来的,以便任何写在SinkChannel对象上的数据都能出现在SourceChannel对象上。

    下面我们来创建一条Pipe,并向Pipe中写数据:

    //通过Pipe.open()方法打开管道Pipe pipe = Pipe.open();

    //要向管道写数据,需要访问sink通道Pipe.SinkChannel sinkChannel = pipe.sink();

    //通过调用SinkChannel的write()方法,将数据写入SinkChannelString newData = "New String to write to file..." + System.currentTimeMillis();

    ByteBuffer buf = ByteBuffer.allocate(48);

    buf.clear();

    buf.put(newData.getBytes());

    buf.flip();

    while(buf.hasRemaining()) {

    sinkChannel.write(buf);

    }

    再看如何从管道中读取数据:

    读取管道的数据,需要访问source通道:

    Pipe.SourceChannel sourceChannel = pipe.source();

    调用source通道的read()方法来读取数据:

    ByteBuffer buf = ByteBuffer.allocate(48);

    int bytesRead = sourceChannel.read(buf);

    ead()方法返回的int值会告诉我们多少字节被读进了缓冲区。

    到此我们就把通道的简单用法讲完了,要想会用还是得多去练习,多模拟使用,这样才知道什么时候用以及怎么用,下节我们来讲选择器-Selectors。

    展开全文
  • 填空题媒体在计算机领域中有种含义:一是存储信息的(实体),二是表示和传播信息的(载体)。多媒体技术的媒体的是(后者)。通常“媒体”可分为以下五种类型:(感觉)媒体、(表示 )媒体、(显示)媒体、(存储)媒体...

    填空题

    媒体在计算机领域中有两种含义:一是指存储信息的(实体),二是指表示和传播信息的(载体)。多媒体技术的媒体指的是(后者)。

    通常“媒体”可分为以下五种类型:(感觉)媒体、(表示 )媒体、(显示)媒体、(存储)媒体和(传输 )媒体

    “多媒体”是指能够同时(获取)、(处理)、(编辑)、(存储)和(展示)两个以上不同类型信息媒体的技术。

    多媒体技术是把指(文字)、(音频)、(视频)、(图形)、(图像)、(动画)等多种媒体信息通过计算机进行数字化(采集)、(获取)、(压缩/解压缩)、(编辑)、(存储)等加工处理,再次以单独或合成形式表现出来的一体化技术。

    多媒体技术的特征主要包括信息载体的(多样化)、(集成性)和(交互性)三个方面。

    矢量图形的最大优点在于可以分别(控制处理)图中的各个部分。

    图像的关键技术是图像的(扫描)、(编辑)、(压缩)、(快速解压缩)和色彩一致性再现等。

    若干(有联系)的图像数据连续播放便形成了视频。

    影响数字声音波形质量的主要因素有(采样频率)、(采样精度)和(通道数)。

    动画是(活动)的图画,实质是一幅幅静态图像的(连续)播放。

    图像数据冗余有以下几种类型:(空间)冗余、(时间)冗余和(视觉)冗余。

    数据压缩可分为有损)压缩和(无损)压缩两种。

    计算机设计动画方法有两种:一种是(造型)动画,另一种是(帧)动画

    多媒体计算机的硬件系统主要包括计算机主要配置和各种外部设备以及与各种外部设备的(控制接口卡)。

    多媒体计算机的软件系统主要包括多媒体(驱动软件)、多媒体(操作系统)、多媒体(数据处理软件)、多媒体(创作工具软件)和多媒体(应用软件)。

    Windows98本身附带了(画图)、(录音机)、(CD播放器)及(媒体播放器)等多媒体程序。

    视频数字化是指以一定的速度对模拟视频信号进行(捕获)、(处理)生成数字信息的过程。

    (声卡)是处理和播放多媒体声音的关键部件。

    媒体素材中的文字实际上有两种,一种是(文本)文字,另一种是(图形)文字。

    文字输入除了键盘输入之外,还有(联机手写)输入、(扫描)输入和(语音)输入等新型输入技术。

    MIDI文件并不记录任何声音,而是记录电子乐器的(弹奏信息),是乐谱的一种(数字式)描述。

    声音的反转能够产生把声波(从后往前)反向播放的特殊效果。

    声音的延时效果可以创建(回声)以及(混响)效果,合适的延迟可以产生合唱效果。

    在计算机图像处理中,图像有两种类型,(点阵)图和(矢量)图。

    一个Photoshop创作的图像可以想象成是由若干张包含有图像各个(不同部分)的不同透明度的纸叠加而成的,每张“纸”称之为一个(图层)。

    Photoshop用通道来存储(色彩信息)和(选择区域)。

    Photoshop中的路径可以是(闭合)的,也可以是(断开)的。

    Photoshop的喷枪工具用前景色产生(喷绘)的效果。

    Photoshop的橡皮章工具是某指定区域或(像素)为样本,将其(复制)到任何地方。

    Photoshop图案图章工具用来填充(连续)图案。

    Photoshop移动工具可以将某图层中的全部图像或(选择区域)移动到指定位置。

    Photoshop橡皮擦工具在背景曾中将擦过的区域涂成(背景色)。

    Photoshop涂抹工具模仿手指在(未干)的颜料中涂抹的效果。

    Photoshop模糊/锐化工具用来降低/增加相邻像素点的(对比度)。

    Photoshop加亮/加暗工具用来改变图像上某个区域的(亮度)。

    Photoshop海棉工具用来增加或降低颜色的(饱和度)。

    Photoshop填充工具可以对(封闭)选区填充颜色或(图案)。

    Photoshop色彩控制工具用来设定(前景色)和(背景色)。

    Photoshop颜色拾取工具从图像中拾取某一(像素点)的颜色来改变前景色或背景色。

    Photoshop手掌工具用来(移动)图像画面。

    Photoshop自由套索工具用来产生(任意形状)的选择区域。

    Photoshop多边形套索工具用来产生(直线型)的多变型选择区域。

    Photoshop磁性套索工具可以自动跟踪图像中物体的(边缘)形成选择区域。

    Photoshop魔术棒工具根据相邻像素的颜色(近似程度)来确定选择区域。

    Photoshop滤镜专门用于对图像进行各种(特殊效果 )处理。

    Photoshop模糊滤镜用来对图像进行模糊效果或(柔化边缘)。

    Photoshop扭曲滤镜模拟不同的扭曲效果,生成(波纹)、(挤压变形)等图像。

    Photoshop风格化滤镜模拟(印象派)及其他风格画派效果。

    Photoshop浮雕滤镜用来勾勒出图像的(轮廓)和降低周围(色值)来生成浮雕凸起的效果。

    Photoshop光照效果滤镜主要用于在图像中产生(照明)效果。

    Photoshop镜头光晕滤镜可以产生照相机滤光镜的(炫光)

    展开全文
  • 前言:经常接触台式机的同学肯定绕不开PCI-E这个名词,因为这是台式机里最重要的接口/通道之一,就算是笔记本,也有很多地方会提到,就好比你加固态硬盘的时候,查阅资料的时候你应该会发现有的M.2接口走的就是PCI-E...

    前言:

    经常接触台式机的同学肯定绕不开PCI-E这个名词,因为这是台式机里最重要的接口/通道之一,就算是笔记本,也有很多地方会提到,就好比你加固态硬盘的时候,查阅资料的时候你应该会发现有的M.2接口走的就是PCI-E X4通道,很多的雷电3接口也会提到这个是半速的,还是满血满速的,雷电3接口走的也是PCI-E通道。所以这个通道在电脑DIY里非常重要,如果你想学电脑硬件,这个通道是必须要认识的,但是很多人并不懂这个通道是个什么东西,到底是干什么的,这个文章我们来详细解读一下。

    正文部分:

    【总线的概念】

    在电脑里,不同的设备要想交互数据,就必须要经过一定的通道,就好像现实当中,两个城市要交换货物,就必须要修路,这里的路就和计算机里的总线概念一样,总线就是计算机里,用于走数据的“路”,CPU核心和cache缓存交互数据的时候,使用的就是内部总线,这个总线只在CPU内交互数据,但是CPU不可能就自己在那空算数吧,他总要和其他设备交互数据,就需要用到外部总线了,CPU会通过外部总线和其他的设备比如硬盘,网卡,声卡,USB设备沟通,我们这个文章想要介绍的PCI-E就是外部总线的一种。

    【PCI-E的前身】

    早些年那时候电脑还没有标准化,各种配件的接口和协议都不统一,声卡用着声卡的接口,网卡用着网卡的接口,显卡用着显卡的接口,大家都不统一,不同品牌不同厂商的接口又都不一样,不统一带来的问题就是不方便拓展,你用着A家的主板,那你就只能买A家接口的显卡声卡和网卡。所以为了解决这种不统一,业内当时统一了一个规格,这就是最早的ISA接口,下图中红色圈中这个黑色的长槽就是ISA了,ISA诞生于距今十分遥远的1981年,它作为IBM PC/XT电脑的系统总线首次出现,由于PC/XT在相当长一段时间内都曾经是PC领域的统治者,所以这个接口也沿用了很久

    不过,ISA的弱点也是显而易见的,作为最初的数据总线,ISA的传输速率很快便成了周边设备性能提升的瓶颈,它还有CPU占用率高以及占用硬件中断资源等其他问题,所以渐渐的也就无法再满足高速发展的外围设备的需求了,因此业界开始了对ISA总线的放弃以及对替代品的寻找。这位继任者,便是几乎陪伴了一代人的PCI,下图中白色的长槽就是了。(此段位引用)

    PCI相对于ISA不仅提高了带宽速度,还做到了即插即用,所谓即插即用,是指当板卡插入系统时,系统会自动对板卡所需资源进行分配,如基地址、中断号等,并自动寻找相应的驱动程序。而不象旧的ISA板卡,需要进行复杂的手动配置,大幅简化的操作使得这个接口迅速普及而且统治了很长一段时间的个人电脑。(此段位引用)

    但是随着时间的推移,PCI接口的弊端也逐渐暴露出来,带宽也逐渐跟不上需求了,所以业内又开始寻找新的接口替代,这就是我们当代见得最多的PCI-E

    PCI-E的全名叫PCI Express,简称PCI-E,官方简称PCIe,他是计算机内部的一种高速总线。

    【PCI-E有什么用】

    由于ISA和PCI年代太过久远了,我们就不多介绍了,大家有兴趣的可以去维基百科或者百度百科找找相关资料和信息,我们着重介绍一下PCI-E。

    PCI-E既是通道,也是接口,当他以接口形式存在的时候,就是我们主板上那长长的槽。

    目前的声卡和网卡都是主板集成了,不需要我们额外再插,所以PCI-E接口目前最大的作用就是插显卡,除了显卡还有无线网卡,万兆有线网卡这些高带宽设备,除了这些PCI-E接口也可以转接成很多接口,比如USB3.0,Type-c,雷电3,又或者U.2,M.2。

    PCIe所能承受的带宽一般以版本和长度来区分,目前的PCIe版本是3.0,X1长度所能承受的带宽大约是986MB/S,我们可以理解为就是1GB/S,X2长度就是2GB/S,X4长度就是4GB/S,那X16长度就是16GB/S

    而我们台式机主板上看到的最长的那个槽,就是X16的槽,所能承载的带宽就是16GB/S,而在长槽之间我们还能看见很短的槽,那就是PCIe X1,能承受1GB/S的带宽。

    几乎任何长度的PCIE设备只需要X1就可以运行,你可以把X16的显卡插在X1槽中(尾部非闭合),你也可以把X1的设备插在X16槽中,这都是可以运行的,只是可能会带宽不足或者浪费带宽了

    很多人看到这里就要说了,PCI-E这个接口好像就台式机有啊,和笔记本好像没有什么关系吧,为什么你文章开头说笔记本也要研究PCI-E呢,上面我们介绍的是PCI-E以接口形式存在,而这里就要介绍另一个情况,当PCI-E以通道形式存在了

    【PCI-E以通道形式存在】

    传统的SATA3接口固态硬盘采用的是AHCI协议,比如金士顿A400,三星860EVO,intel545S使用的都是SATA3接口,这种接口速率上限的理论值是750MB/S,但是实际上就只有600MB/S左右,所以这种固态硬盘速度大家可以看到都不超过600MB/S,这就是被SATA3这个接口的带宽限制了。

    而为了摆脱限制,我们只能考虑换接口,PCI-E速率不是很快么,我们就用PCI-E好了,但是PCI-E体积太大怎么办,那么我们就缩小体积换个样子,这就是M.2接口,M.2接口你可以理解为他就是PCI-E接口,只是换了个形状而已。

    所以这个时候,接口就是M.2,PCI-E在这里的作用就是扮演传输数据的通道了,而不是直接以接口存在。除了M.2包括雷电3这样的接口,都是利用PCI-E通道传输速率的,所以这就有了满血M.2/雷电3,还有残血M.2/雷电3这个说法了,满血的就是X4带宽,残血的就是X2带宽。比如小米笔记本PRO 15.6这款笔记本,第一个M.2就是X4的带宽,而第二个只有X2的带宽,所以你给米PRO装固态,第二个固态是怎么也不可能跑到2GB/S以上的顺序速度的。

    那这里很多朋友就会发现了,我们目前使用的i3 i5 i7的民用平台,都只有X16条PCI-E,所以要么是1X16,或者2X8或者1X8+2X4,但是我的主板上有两个M.2接口,像技嘉和华擎上面甚至有3个M.2,而大家都知道一张显卡就需要用掉X16的槽,那这是否意味着我要是插满这些M.2之后,我的显卡就会自动降低到X8甚至是X4呢?

    所以这里又要引出一个话题,那就是直连PCI-E和绕道PCI-E和南桥芯片组

    【直连PCI-E和绕道PCI-E与南桥芯片组】

    电脑里有很多的设备要和CPU通讯,比如内存,显卡,键盘鼠标,声卡网卡,如果这些设备全接到CPU上,对于CPU的设计难度,还有台式机的模块化难度是非常高的,光主板布线的难度相对于现在都是指数的提升,如果有兴趣研究PCB的,大家可以看一下CPU底座到内存那块,走了多少密密麻麻的线图文无关

    所以我们不可能让所有的设备都去找CPU通讯,那我们就给CPU安排一个下手,显卡和内存由于对于延迟和带宽要求很高,还是由CPU来直接通讯,但是键盘鼠标,声卡网卡这些,就让这个下属去管,然后这个下属再给CPU汇报数据。这个用来交互数据的下属,就是主板南桥芯片组,芯片组除了提供相应的主板特性外,最重要的就是作为外部设备的交互中转站。

    芯片组的作用很像我们用的分线器,就是把一个接口分成很多小接口,其实他就是电脑主板的内部分线器,他将CPU发送给他的总线分给下属设备。

    但是很多人就想到了,目前家用CPU的PCI-E只有16条,那那些M.2是谁提供的PCI-E通道呢?我装了下图是我从intel官网找到的Z390总线结构图

    在左上角我们可以看到,直连CPU的PCI-E只有16条,要么是1X16,要么是2X8,要么是1X8+2X4,但是在芯片组左边我们可以看到Up to 24X PCI-E 3.0这个字样,也就是说,Z390芯片组下是可以挂载最大24条走南桥的PCI-E。

    所以这就可以解释为什么目前主板上有2个甚至3个M.2的情况下,你的显卡依旧是PCI-E X16,就是因为这些PCI-E并不是intel说的那16条直连PCI-E,而是走南桥绕道的PCI-E。

    所以这就可以解释另外一个问题,为什么M.2,雷电3,还有U.2的带宽上限目前最高都是PCI-E X4呢?因为CPU和芯片组之间通过DMI3.0总线连接,这个总线速度只有PCIEX4的水平也就是4GB/S,所以雷电3,M.2,U.2目前都无法突破X4带宽,就是被这个DMI牙签总线限制了。

    但是木头龙的例子就非常好,一个能停100辆车的停车场不用吧出入口修成100个车道宽,因为他们不太可能一块进出,所以只需要留出入两个车道就可以,挂在在南桥下面的设备不太可能大家一块输出数据,所以纵使目前DMI3.0只能提供X4的带宽,也足以满足我们的需求了。

    全文完,感谢您的耐心观看!!!

    如果您觉得我的文章写得不错就点一波关注吧,您的关注是对我最大的支持!!!

    在关注专栏的同时不要忘记关注我本人哦,非常感谢您的支持!!!

    展开全文
  • 【单选题】混悬剂的质量评价方法一般不包括 【判断题】法律至上是在国家或社会的所有规范中,法律是地位最高、效力最广、强制力最大的规范。( ) 【单选题】乙酰乙酸乙酯可以使得溴水褪色是因为存在 【单选题】请...

    【单选题】牛胃为多室胃,其中分泌消化腺的胃是( )。

    【判断题】首家万豪酒店在纽约成立。

    【判断题】脱离现实谈理想,理想就成为空想。

    【多选题】安全直接经济效益的表现形式有哪几种()。

    【单选题】a

    【单选题】This is a photograph of our friend _____ we went on holiday.

    【判断题】制冷系数一定大于1。

    【判断题】商朝的建立,标志着商族的形成,夏族的族称随商族而改变,夏族也因此而消失了。

    【单选题】中国古代用黄莺表示( )。

    【判断题】该化合物具有光学活性( )。

    【多选题】嵌入式系统的实时性有哪些类型?

    【单选题】At a business reception, people should eat and drink with caution, because( )

    【判断题】传统醒狮的狮头主要以刘备和五虎将等民族英雄为模,五虎将代表了娱乐、竞技等人格特点和传统道德。( )

    【判断题】用万能工具显微镜测量轴类工件时,不用调焦棒对工件进行调焦。

    【多选题】下列哪些花卉属于浮水类水生花卉?(多选)

    【多选题】西方文论的传统包括()

    【单选题】基于 EDA 软件的FPGA/CPLD 设计流程为:原理图/HDL 文本输入→() →综合→适配→时序仿真 →编程下载→硬件测试。

    【判断题】宫廷剧中常有“滴血验亲”的情节,这种通过血液是否可以相溶来判断是否存在亲缘关系的说法是没有科学依据的。

    【判断题】当市场利率上时,证券行市也上升。( )

    【判断题】在希腊神话传说中,德尔斐是世界的中心。

    【判断题】自由能最小化方法被称为元素势能方法。

    【单选题】式 适用于( )。

    【判断题】概算定额是编制预算定额的依据

    【多选题】有关肝药酶的叙述正确的是

    【单选题】《素问·灵兰秘典》 心者,君主之官,神明出焉 其中“神明”的意思()

    【判断题】B 族维生素易在体内蓄积,不能随尿出,如果长期大量摄入,容易出现中毒症状。

    【判断题】用交流电压表测得某元件两端电压是6V,则该电压的最大值为6V

    【判断题】美术等作品原件所有权的转移,不视为作品著作权的转移。

    【多选题】科研人员的心里基础包括()。

    【多选题】在该集团CIS企业形象系统指导下的“亥猪年系列新年推广活动”中,对于品牌专营店店面指示系统中,哪些项目能够被重新设计:( )?

    【单选题】一个 4 位寄存器可以构成最长计数器的长度是( )。

    【单选题】混悬剂的质量评价方法一般不包括

    【判断题】法律至上是指在国家或社会的所有规范中,法律是地位最高、效力最广、强制力最大的规范。( )

    【单选题】乙酰乙酸乙酯可以使得溴水褪色是因为存在

    【单选题】请选出“ぶ”的片假名浊音( )

    【多选题】胸内负压的生理意义为()

    【判断题】为了将物体的外部形状表达清楚,一般采用3个视图来表达。

    【单选题】涂防晒霜时,容易忘记且非常容易晒伤的部位是:

    【单选题】某企业占用林地 140万平方米建造花园式厂房,所占耕地适用的定额税率为30元/平方米,该企业应缴纳耕地占用税( )万元。

    【单选题】若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素的算法的时间复杂度为 ( )。

    【单选题】斯宾塞没有按照常规逻辑思维去判断这件事,而是有了另外的思路,可见( )是机会的最前端。

    【单选题】由于低速气流连续不可压缩,所以低速气流的特点是( )。

    【判断题】老年人的空腹静脉血糖会轻度升高。

    【单选题】腰麻10min后,患者面色苍白,出冷汗,脉搏120次/min,血8/4KPa,有恶心呕吐,首先处理是

    【单选题】下列哪种物质不是大洋蛇绿岩套的成分。()

    【单选题】当电网电压波动时,保持负载电压基本不变的电路是( )。

    【判断题】当地层压力大于泡点压力时,两相体积系数不存在

    【单选题】以下哪个不是肌形态学的分类( )

    【单选题】我国医学史上首部医德医风的典范之作是( )。

    展开全文
  • RMAN通道分配

    2021-05-02 06:16:19
    RMAN通道分配RMAN通道分配是...这其中通道指的就是某个设备(可以是磁盘或磁带等其他介质)和数据库进行关联。通道分配有手动分配和自动分配种,其中手动分配通道时要使用run命令实现,自动分配则只需要使用configur...
  • Alpha通道

    2021-08-03 16:55:55
    阿尔法通道(α Channel或Alpha Channel)是一张图片的透明和半透明度。 例如:一个使用每个像素16比特存储的位图,对于图形中的每一个像素而言,可能以5个比特表示红色,5个比特表示绿色,5个比特表示蓝色,最后...
  • 什么是通道测试和永久链路测试

    千次阅读 2021-03-25 17:34:08
    通道连接个应用设备的端到端传输通道,包括设备区跳线和工作区用户跳线,如面板到用户计算机和配线架进行切换;永久链路是信息点与楼层配电设备之间的传输线,不包括工作区跳线和用户设备跳线。 从以上个定义...
  • 计算机总线.docx

    2021-07-06 07:23:50
    总线概念所谓总线(Bus),是计算机设备和设备之间传输信息的公共数据通道。总线是连接计算机硬件系统内多种设备的通信线路,它的一个重要特征是由总线上的所有设备共享,可以将计算机系统内的多种设备连接到总线上。...
  • 一、通道是什么通道式(Channel)是java.nio的第二个主要创新。通道既不是一个扩展也不是一项增强,而是全新的、极好的Java I/O示例,提供与I/O服务的直接连接。Channel用于在字节缓冲区和位于通道另一侧的实体(通常是...
  • 1、通常我们所说的32位机,的是这种计算机的CPU 。A.能够同时处理32位二进制数据B.是由32个运算器组成的C.一共有32个运算器和控制器D.包含有32个寄存器2、关于微型机主板上的总线,下列说法错误的是A.总线...
  • 输入通道指的是输入了几个二维信息,也就是很直观的rgb图有r,g,b三个通道,这决定了卷积核的通道数,即输入图像的通道数决定了卷积核通道数;(图片中,第一列有三个矩阵,也就是输入通道为3,所以后面,第二列和...
  • lpc总线规范详解

    2021-07-06 07:22:58
    所谓总线(Bus),是计算机设备和设备之间传输信息的公共数据通道。总线是连接计算机硬件系统内多种设备的通信线路,它的一个重要特征是由总线上的所有设备共享,可以将计算机系统内的多种设备连接到总线上。如果是...
  • 并发与通道

    2021-06-07 23:05:48
    这时,你可能会吃口饭再玩一会儿游戏,说明你支持并发。但是,团战很激烈,于是不得不一边吃饭一边玩游戏,说明你支持并行。 并发(concurrency):在同一时刻只能有一条指令执行,但多个进程指令被快速的轮换...
  • A、控制器计算机系统分为硬件和软件大部分。硬件是计算机系统的机器部分,它是计算机工作的物质基础;软件则是为了运行、管理和维护计算机而编制的各种程序的总和,广义的软件还应该包括与程序有关的文档。 计算机...
  • 理解什么是二值图、灰度图、彩色图二值图灰度图彩色图图像通道 二值图 图像示例: 二值图像是:每个像素点均为黑色或者白色的图像。二值图像一般用来描述字符图像,其优点是占用空间少,缺点是,当表示人物,...
  • RMAN中的通道分配

    2021-05-02 06:17:21
    通道的分配主要有种形式:自动分配通道和手动分配通道。一、自动分配通道:自动分配通道在执行RMAN命令时,不需要显式制定通道的细节就可以使用通道。(实际上也是使用预先设置或是使用默认...
  • 卷积网络中很重要的个名词:通道和特征图 最直观的感受:特征图 == 通道 我们知道一张彩色图片由RGB三张图片组成,如图: 那么此处的三张图片就对应了三个通道,也可以说是三个特征图,不同的图侧重点不一样。 ...
  • 前言:上文中我们采用了【原子函数】已经【共享锁】种方式分别对多个goroutine进行了同步,但是在go语言中提供了另一种更好的方式,那就是使用通道(Channel)。一、通道是什么?其实无论是原子函数还是共享锁都是...
  • – 基于Xilinx Ultrascale+ MPSoc的多通道高精度TDC 版本 1.1 2021年3月29日 简介 SeruTek UltraTDC 是上海瑟如电子近期推出的高精度、多通道TDC IP核。该IP核适用于Xilinx Ultrascale/Ultrascale+ 架构的多款FPGA/...
  • NIO 支持面向缓冲区的、基于通道的 IO 操作。NIO 将以更加高效的方式进行文件的读写操作。 1.1 阻塞 IO 通常在进行同步 I/O 操作时,如果读取数据,代码会阻塞直至有可供读取的数据。同样,写入调用将会阻塞直至数据...
  • 首发于TensorRT详细入门北,如果你还不了解TensorRT,过来看看吧!,最新回复以及交流请看这里~ 前言 大名鼎鼎的TensorRT有多牛逼就不多说了,因为确实很好用。 作为在英伟达自家GPU上的推理库,这些年来一直被...
  • 【NIO】通道Channel

    2021-02-03 11:27:23
    通道式(Channel)是java.nio的第二个主要创新。通道既不是一个扩展也不是一项增强,而是全新的、极好的Java I/O示例,提供与I/O服务的直接连接。Channel用于在字节缓冲区和位于通道另一侧的实体(通常是一个文件或...
  • 在图形学中,ALPHA的是除了颜色的三个分量(RGB)外的第四个分量:透明度。所以,一个真彩色(利用RGB分量合成颜色)的像素就变成由四个分量组成:R、G、B、A。在我们的讨论里,设R、G、B、A均为从0到1的值,其中...
  • Go语言之通道

    2020-12-23 04:49:20
    上一篇我们讲的原子函数和互斥锁,都可以保证共享数据的读写。但是呢,它们还是有点复杂,而且影响性能。对此,Go又为我们提供了一种工具,这就是通道。...通道,它有点像在个routine之间架设的管道:一个gor...
  • go学习之--通道

    2021-06-18 22:36:37
    channel通道 通道可以被认为是Goroutines通信的管道。类似于管道中的水从一端到另一端的流动,数据可以从一端发送到另一端,通过通道接收。 在前面讲Go语言的并发时候,我们就说过,当多个Goroutine想实现共享数据的...
  • 文件通道通道是访问I/O服务的导管,I/O可以分为广义的...文件通道指的是FileChannel,套接字通道则有三个,分别是SocketChannel、ServerSocketChannel和DatagramChannel通道可以有多种方式创建。Socket通道有直接创...
  • CPU的快速互联通道(QPI)详解

    千次阅读 2020-12-26 09:26:28
    翻译自:...新一代的Intel 处理器将内置内存控制器,所以该处理器将提供通道:连接CPU和内存的内存总线(memory bu
  • 中断、DMA、通道

    2021-07-29 03:48:58
    三、直接内存存取(DMA)方式 直接内存存取技术是,数据在内存与I/O设备间直接进行成块传输。 DMA技术特征 DMA有个技术特征,首先是直接传送,其次是块传送。 所谓直接传送,即在内存与IO设备间传送一个数据块...
  • 发布时间: 2016-05-25摘要点击次数: 288全文下载次数: 39DOI: 10.11834/jig.201605032016 | Volumn 21 | Number 5图像处理和编码 利用双通道卷积神经网络的图像超分辨率算法徐冉, 张俊格, 黄凯奇中国科学院自动化...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 144,117
精华内容 57,646
关键字:

两通道是指