• Re: 求QPI/UPI规范文档,有答谢

    留个邮箱吧,万一有好心人给发一个呢

    yswzing@gmail.com

    2019-04-14
  • Re: 求QPI/UPI规范文档,有答谢

    哈哈,也只有这点东西可以作为答谢了

    【 在 HxSailor 的大作中提到: 】

    : Intel极少数授权用户给,华为估计都拿不到最新的。你这答谢法也是无敌了。而且别人在拿到的时候也是承诺了保证不流传出去的。

    2019-04-14
  • 求QPI/UPI规范文档,有答谢

    求QPI/UPI规范文档,纯粹个人研究学习用,保证不流传出去。

    本人精通PCIe protocol layer,包括ordering/deadlock、ATS、IOV等,作为答谢,本人可详细解答相关问题,也可解答cache coherency/memory consistency方面的问题。

    2019-04-13
  • 请问block owner和microarchitect是同一个人吗?

    如果不是的话,他们之间的关系是什么,他们和architect的关系是什么?谢谢

    2019-04-03
  • Re: 请教个问题,ARM load acquire和store release指令的使用场

    锁编程的时候,有一个隐含的前提,必须是先获取锁,然后再访问数据;解锁的时候相反,必须先写完数据,再释放锁。所以这里分别有一个acquire/release语义,所有加锁解锁代码都必须有,跟具体的临界区代码没有关系。

    【 在 hanxh 的大作中提到: 】

    : 哦。

    : ARM本身是relax的,如果是因为consistency的话,是不是意味着某些场景下程序员必须保证consistency,所以才加了acquire&release。否则一段cirtical code也是可以不加acquire&release的?

    2017-11-29
  • Re: 请教个问题,ARM load acquire和store release指令的使用场

    你这是没有考虑访存乱序的问题。关键字: release consistency

    【 在 hanxh 的大作中提到: 】

    : 我一直觉得spin lock用到的指令应该类似于这样:

    : loop:

    :    ldxr

    : ...................

    2017-11-24
  • Re: ALPHA 21264 的 rename map table 为什么采用 CAM 结构?

    指的是线或逻辑?

    5-bit 译码和5-bit比较的延迟区别,看来这个地方是关键路径,21264的优化真是厉害啊!

    高人!学习了,谢谢!

    【 在 AlphaAXP 的大作中提到: 】

    : 21264的rename table是用逻辑实现的,延迟只有一个5-bits的相等比较加一个and gate delay,比RAM base的实现快太多了。

    2015-11-19
  • ALPHA 21264 的 rename map table 为什么采用 CAM 结构?

    ALPHA 21264 的 rename map table 是 physical register number 索引的,这样 rename 的时候,每条指令的每个 source 都需要到 map table 中进行 associative search (CAM 操作)。

    稍早推出的 MIPS R10000 的 map table 是 logical register number 索引的,这样 rename 的时候,每条指令的每个 source 需要一个 RAM read port,但是不需要 CAM 操作。

    一般来说,CAM 比 RAM 在功耗面积上都要差一些,那么 21264 为什么不采用类似 R10000 的 RAM 结构而采用 CAM 结构呢?

    2015-11-19
  • Re: 内存之间不能够直接复制是受限于什么?

    memory controller一般不称作DMA。DMA指无需CPU参与即可访问DDR的机制。

    memcpy需要考虑cache,不能在memory controller层次解决,可以通过DMAC解决,但是只有memcpy任务粒度较大时,才有价值。

    LZ可参考 intel I/O accelerating technology,有wikipedia介绍,专用于网络处理的。

    【 在 IvanLee 的大作中提到: 】

    : memory controller 不是一种DMA吗?

    : 我的出发点是今天普通PC的内存越来越大,如果我们能够在非CPU干预下实现出memcpy, 那么很多使用memcpy的地方都可以节约出CPU来,比如context switch的copy, VM 中的gc copy。这对于in-memory compute应该是一个可以尝试的方向?

    : ...................

    2015-10-20
  • Re: 内存之间不能够直接复制是受限于什么?

    load, store, cmp, add, branch?

    【 在 mephistoxp 的大作中提到: 】

    : 请教最简单最没效率的memcpy需要哪几条汇编指令才能实现?谢谢

    2015-10-20
  • Re: 内存之间不能够直接复制是受限于什么?

    更正一下,上面说的DMA controller(DMAC)也可以支持coherency的memory copy,不光是DDR copy。

    只所以一般系统中很少见到的原因,我觉得是这种DMAC一般是通过I/O通路启动的,和cpu是asynchronous的,估计一般用在特殊场景。如果通常的应用程序使用DMAC实现memcpy,则涉及到同步问题,效率反倒不如直接用CPU做memcpy。

    2015-10-20
  • Re: 内存之间不能够直接复制是受限于什么?

    见过有些SoC芯片中带DMA Controller,可以实现 lz 所说的内存(DDR)搬移。至少为什么不在 memory controller 中实现,猜测是为了减少 memory controller 的复杂性,因为需求也不是很强,memory controller又都是以通用IP的形式提供的,很少提供定制。懂行的介绍一下?

    扩展到一般性的数据大块复制,lz 的问题类似于 C 语言中的 memcpy 函数硬件实现问题。这种情况下,不光是 DDR 中的数据搬移,还要考虑到 cache,以及 coherency 问题。软件实现已经 enough?有很强的需求吗?懂行的介绍一下?

    2015-10-20
  • Re: ARMv8 stack alignment 问题

    AARCH64是一个全新ISA,以前的软件必须经过重新编译,有何兼容性问题?

    【 在 iLauren 的大作中提到: 】

    : 1效率

    : 2兼容

    2015-10-20
  • Re: ARMv8 stack alignment 问题

    难道不是compiler或assembly writer保证对齐?

    【 在 kirbyzhou 的大作中提到: 】

    : 你觉得靠什么保证SP对齐?还不是跑起来以后看看会不会因此崩溃呗。

    2015-10-20
  • Re: ARMv8 stack alignment 问题

    如果是效率问题,似乎不用强制吧,对效率有需求的软件自己保证SP对齐不就行了。为什么设置一种强制机制?

    似乎这种强制机制没有什么用处,如果需要效率,软件就自己保证16B对齐;如果需要兼容,就不用保证16B对齐。皆大欢喜?

    【 在 iLauren 的大作中提到: 】

    : 1效率

    : 2兼容

    2015-10-20
  • ARMv8 stack alignment 问题

    ARMv8 提供了一个配置位 (SCTLR.SA),可以强制 stack pointer 对齐到 16-byte,默认是打开的。

    大家讨论一下:

    1. 强制 SP 对齐到 16B 有什么好处?

    2. 既然有上述好处,为什么还要提供一种手段来关闭这种强制?

    2015-10-20
  • Re: 请教下,同样体系架构下,不同OS的APP区别在哪里?

    终于来了个明白人

    楼主可参考 Linux 下的 wine 项目(在Linux上运行win32 exe程序)和 cygwin(在win32上提供了一个posix兼容开发环境)

    【 在 Aquamarine 的大作中提到: 】

    : 这么无聊的问题...

    : 不同OS的syscall不一样,相同OS的syscall也会变。不管framework多复杂,最终都是调

    : 用这些syscall的。

    : ...................

    2015-09-20
  • Re: IA64 Linux kernel 的 spin unlock 中为什么没有使用 st.re

    好的,谢谢,受教了!

    【 在 pxa255 的大作中提到: 】

    : 这个不好讲,要看具体情况。不同地址单元的load/store才会发生这种情况。

    : :

    2015-07-25
  • Re: IA64 Linux kernel 的 spin unlock 中为什么没有使用 st.re

     大牛!

    顺便请教另外一个问题,你发的文档中 PART III 最后有这么一节:LOAD.acq Passing STORE.rel,我想问一下 load.acq pass st.rel 有什么潜在问题?是否需要在 st.rel 后面加上 fence?

    【 在 pxa255 的大作中提到: 】

    : 有出处,不用试。http://h21007.www2.hp.com/portal/download/files/unprot/ddk/mem_ordering_pa_ia.pdf

    2015-07-24
  • Re: IA64 Linux kernel 的 spin unlock 中为什么没有使用 st.re

    手头没有ia64的编译器,不过试了一下ARMv8(同样有acquire/release)的编译器,发现编译器不会把volatile的访存自动加上acquire/release语义。

    哪位大侠有 IA64 编译器,帮忙试一下:

    [code]

    int test_volatile_rw(int * ptr, int val)

    {

    volatile int * nptr = ptr;

    *nptr = val;

    return *nptr;

    }

    [/code]

    2015-07-24