小编Vai*_*yal的帖子

缓存寻址方法混淆

我一直在阅读缓存可以解决的四种方式:

  1. 物理索引物理标记(PIPT)
  2. 物理索引虚拟标记(PIVT)
  3. 虚拟索引物理标记(VIPT)
  4. 虚拟索引虚拟标记(VIVT)

以下哪个缓存会受到同义词和同音词问题的影响?我知道VIVT会受到这些问题的困扰,PIPT也不会.但是PIVT和VIPT呢?

caching cpu-architecture cpu-cache

6
推荐指数
1
解决办法
1836
查看次数

什么是Johnson计数器中的寄生状态机

module johnson #(parameter N=8)
  (output logic [N-1:0] q, input logic clk,reset);

  always_ff @(posedge clk,posedge reset)
    if(reset)
      q<=0;
    else
      q<={~q[0],q[N-1:1]};

endmodule
Run Code Online (Sandbox Code Playgroud)

以上是8位Johnson计数器的systemverilog HDL.我从教科书中读到它有大量未使用的状态,这些状态形成了他们自己的计数器,即寄生状态机.这个寄生状态机究竟是什么?

system-verilog

6
推荐指数
1
解决办法
277
查看次数

追踪斐波纳契数列的递归

我试图理解用于斐波那契系列的递归机制.

#include<stdio.h>
int fib(int n);
int main()
{
    int x, n;
    scanf("%d", &n);
    x = fib(n);
    printf("fibonacci number %d = %d\n", n, x);
    return 0;
}
int fib(int n)
{
    if (n == 0)
    {
        return 0;
    }
    else if (n == 1)
    {
        return 1;
    }
    else
    {
        return (fib(n -1) + fib(n - 2));
    }
}
Run Code Online (Sandbox Code Playgroud)

以上是该系列的代码.我可以跟踪程序(对于n = 6),直到返回中的第一个术语调用fib(1)然后返回1.之后,我在跟踪执行时有点迷失.我试图通过堆栈图来理解它,但我仍然感到困惑.任何人都可以帮我吗?另外我如何使用gdb跟踪堆栈帧并查看堆栈帧上的变量值?

谢谢

c recursion

5
推荐指数
3
解决办法
6754
查看次数

字符数组到浮点转换

我试图将下面代码的输出缓冲区(字符数组)转换为浮点格式,以便进一步计算.任何人都可以告诉我该怎么做.

#include "usbtmc.h"
#include <errno.h>
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdlib.h>
#include <getopt.h>
#include <inttypes.h>
#include <sys/types.h>
#include <pthread.h>

int main() 
{

    int myfile;
    char buffer[4000];

    int actual;

    myfile=open("/dev/usbtmc1",O_RDWR);
    if(myfile>0)
    {
        system("echo MEAS:VOLT:AC?>/dev/usbtmc1");
        actual=read(myfile,buffer,4000);

        buffer[actual] = 0;
        printf("Response = \n %s\n",buffer);

        close(myfile);
    }


    return 0;
}
Run Code Online (Sandbox Code Playgroud)

此代码的示例输出是

响应= + 1.29273072E-04

c unix type-conversion

2
推荐指数
1
解决办法
2万
查看次数

上升沿检测系统

module syncrisedgedetect(input logic sig_a, rst,clk,output logic sig_a_risedge);

  logic sig_a_d1;

  always @(posedge clk or negedge rst)
  begin
    if(!rst)
      sig_a_d1<=1'b0;
    else
      sig_a_d1<=sig_a;
  end

  assign sig_a_risedge=sig_a & !sig_a_d1;

endmodule
Run Code Online (Sandbox Code Playgroud)

嗨,我在一本关于sig_a的上升沿检测的书中遇到了这个代码.任何人都能解释我的工作吗?

谢谢

verilog system-verilog

2
推荐指数
1
解决办法
2万
查看次数

NVV中的nvidia-smi -ac等价物

我学会了比nvidia-smi -ac可以用来改变GPU核心和内存的时钟速率.nvidia-smi是建立在NVML库的基础上的吗?自从我检查文档以来,它在NVML中的等价物是什么

http://cyber.sibsutis.ru:82/GPGPU/sdk/CUDA_TOOLKIT/nvml.pdf

但只能看到用于获取时钟速率值而不是设置它们的API?

谢谢

cuda nvml

0
推荐指数
1
解决办法
1891
查看次数