0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

英创信息技术ESM6802( iMX6-WEC7)多核性能测试

英创信息技术 来源:英创信息技术 作者:英创信息技术 2020-02-05 11:08 次阅读

ESM6802是英创公司推出的基于Freescale i.MX6DL双核处理器(ARM Cortex-A9,主频1GHz)的高性能工控主板,预装正版Windows Embedded Compact 7(WEC7)嵌入式操作系统,WEC7一个最重要的特性就是对多核处理器的支持(Symmetric Multi-Processing(SMP)),下面将通过应用程序来测试在单核和多核情况下系统的执行情况,为了更直观的比较,同时参与测试的还有ESM3354,ESM3354是基于TI Coertex-A8处理器的工控主板,CPU主频1GHz,同样预装WEC7操作系统。

所设计的测试程序代码如下,其中的TestSmp函数有两个输入参数,第一参数表示要创建测试线程的数量,第二个参数为所创建线程的运行时长。cbTestSmp是被创建的测试线程,测试线程主要是在一个while循环中,反复读取内存变量然后与预设值进行比较,在运行设定的时间后自动退出循环,其中的threadParam->loops变量会记录下while循环总共执行的次数。

typedefstruct_SMP_THREAD_PARAM

{

UINT32 durationMs;

UINT32 threadId;

UINT64 loops;

BOOL bSetAffinity;

UINT32 sandBoxSize;

LPVOID sandBoxStart;

}SMP_THREAD_PARAM, *PSMP_THREAD_PARAM;

ULONGcbTestSmp(LPVOID param)

{

PSMP_THREAD_PARAM threadParam = (PSMP_THREAD_PARAM)param;

DWORD tStart = GetTickCount();

UINT8 *buffer = (UINT8 *)threadParam->sandBoxStart;

wprintf(L"Ahou, Thread %d, running for %d ms\r\n", threadParam->threadId,

threadParam->durationMs);

// Write to sandbox

for(UINT32 i = 0; i < threadParam->sandBoxSize; i++)

{

buffer[i] = (UINT8)(i);

}

while( (GetTickCount() - tStart) < threadParam->durationMs)

{

// Read back from sandbox

for(UINT32 i = 0; i < threadParam->sandBoxSize; i++)

{

if(buffer[i] != (UINT8)(i))

{

wprintf(L"Thread %d : error at byte %d for loop %I64d !!\r\n",

threadParam->threadId, i, threadParam->loops);

}

}

threadParam->loops++;

}

wprintf(L"Thread %d : terminating\r\n", threadParam->threadId);

return0;

}

voidTestSmp(UINT32 nNumOfThread, UINT32 durationMs)

{

UINT32 i;

PSMP_THREAD_PARAM threadParams;

HANDLE *threadHandles;

UINT64 totalLoops = 0;

UINT32 sandBoxSize = 1024 * 128; // 128 kB

HANDLE h_array[1];

threadParams = (PSMP_THREAD_PARAM)malloc(nNumOfThread *sizeof(SMP_THREAD_PARAM));

if(threadParams == NULL)

{

wprintf(L"Failed allocating thread params !\r\n");

return;

}

threadHandles = (HANDLE *)malloc(nNumOfThread *sizeof(HANDLE));

if(threadHandles == NULL)

{

wprintf(L"Failed allocating thread handles !\r\n");

return;

}

for(i = 0; i < nNumOfThread; i++)

{

threadParams[i].bSetAffinity = TRUE;

threadParams[i].threadId = i;

threadParams[i].durationMs = durationMs;

threadParams[i].loops = 0;

threadParams[i].sandBoxSize = sandBoxSize;

threadParams[i].sandBoxStart = malloc(sandBoxSize);

threadHandles[i] = CreateThread(NULL, 0, cbTestSmp, &threadParams[i], 0, NULL);

wprintf(L"Thread handle %d : 0x%x\r\n", i, threadHandles[i]);

}

h_array[0] = threadHandles[0];

DWORD res = WaitForSingleObject(h_array[0], INFINITE);

Sleep(500);

if(res == WAIT_TIMEOUT)

{

wprintf(L"Timeout waiting for threads !\r\n");

}

else

{

wprintf(L"All threads exited\r\n");

}

for(i = 0; i < nNumOfThread; i++)

{

wprintf(L"Thread %d did run %I64d loops\r\n", i, threadParams[i].loops);

totalLoops += threadParams[i].loops;

free(threadParams[i].sandBoxStart);

CloseHandle(threadHandles[i]);

}

wprintf(L"Total number of loops %I64d (%I64d millions)\r\n", totalLoops,

totalLoops / 1000000);

free(threadHandles);

free(threadParams);

}

将上述测试代码编译生成为exe文件,分别在ESM3354和ESM6802上运行,设置while循环的执行时间均为10000ms,测试结果如下:

1、创建单个线程

测试主板与线程 ESM3354(1GHz单核 Cortex-A8) ESM6802(1GHz双核Cortex-A9)
循环次数 6791 7493

当测试程序只创建一个测试线程时,ESM3354的while循环执行了6791次,ESM6802执行7493次,虽然ESM6802为双核处理器,但由于程序只有一个线程,即同一时刻只有一个线程在运行,所以在相同的时间内,循环的次数仅略多于ESM3354。由于ESM3354和ESM6802的CPU主频同样都是1GHz,所以可以认为ESM6802多出的循环次数也就是Cortex-A8与Cortex-A9在代码执行效率上的差别。

2、创建两个线程

测试主板与线程 ESM3354(1GHz单核 Cortex-A8) ESM6802(1GHz双核Cortex-A9)
线程1循环次数 3390 7438
线程2循环次数 3442 7452
总循环次数 6832 14890

当测试程序创建了两个线程时,ESM3354会将CPU资源大约平均的分配给两个线程,如上表中线程1执行了3390次,线程2执行了3442次,两个线程总共执行的次数与只创建单个线程测试时的循环次数相当。ESM6802为双核CPU,在测试程序有两个线程的情况下,在同一时刻两个线程可以同时运行,所以总的循环次数大约是单个线程测试时的两倍。

通过上面的测试可以看到,在多线程情况下,如果操作系统支持多核处理器,那么双核CPU的运算能力将是单核CPU的两倍。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • WINDOWS
    +关注

    关注

    3

    文章

    3523

    浏览量

    88356
  • 嵌入式主板
    +关注

    关注

    7

    文章

    6085

    浏览量

    35169
收藏 人收藏

    评论

    相关推荐

    中科达荣获2024年软件和信息技术服务优秀企业

    及前百家企业”名单。中科达凭借非凡的技术实力与持续的创新能力,成功入选“2024年度软件和信息技术服务竞争力百强企业”以及“2024年软件和信息技术服务优秀企业”。
    的头像 发表于 10-30 11:44 347次阅读

    锐恩科技引领微控制器MCU技术创新,赋能多元化应用!

    ,成为国家高新技术半导体企业的佼佼者。锐恩科技不仅致力于为客户提供高可靠性、高性能、高性价比的一站式半导体芯片供应服务,更在8位和32位MCU市场不断创新,推动技术进步与产品应用拓展
    发表于 09-29 13:40

    国产化背景下的工控主板发展现状

    ,是信息技术应用创新产业的简称,于2016年“信工委会”(信息技术应用创新工作委员会)提出,目的就是要推动我们国内软硬件关键技术的研发
    的头像 发表于 09-21 16:15 302次阅读

    梯度科技入选2023年信息技术应用创新解决方案名单

    日前,工业和信息化部网络安全产业发展中心(工业和信息化部信息中心)在天津举办2024信息技术应用创新发展大会暨解决方案应用推广大会。会上正式公布了2023年
    的头像 发表于 09-09 16:29 374次阅读

    CPU单核性能多核性能的区别

    CPU的单核性能多核性能在多个方面存在显著的差异,这些差异主要体现在处理能力、应用场景、性能瓶颈以及技术发展等方面。以下是对两者区别的详细
    的头像 发表于 09-02 14:42 4840次阅读

    集芯IP6802:至为芯设计的一站式无线充电soc解决方案应用芯片

    设计的无线充电解决方案采用了集芯的IP6802。作为该方案的核心部件,IP6802不仅拥有高效的无线充电功能,还具备了灵活的定制能力,能够根据客户的需求进行个性
    的头像 发表于 08-02 16:40 374次阅读
    <b class='flag-5'>英</b>集芯IP<b class='flag-5'>6802</b>:至为芯设计的一站式无线充电soc解决方案应用芯片

    IPv6 在信产业中的发展历程

    随着信息技术的飞速发展,信产业作为国家信息安全和科技自主创新的重要领域,正日益受到广泛关注。在信产业的发展过程中,IPv6扮演着至关重要
    的头像 发表于 06-17 14:46 295次阅读
    IPv<b class='flag-5'>6</b> 在信<b class='flag-5'>创</b>产业中的发展历程

    深圳比达EMC|EMI电磁干扰:电子设备性能的头号敌人.

    深圳比达EMC|EMI电磁干扰:电子设备性能的头号敌人在电子信息技术飞速发展的今天,电磁干扰(EMI)已成为影响电子设备性能和稳定性的重要因素。今天深圳比
    发表于 05-21 11:19

    飞特电子亮相2024宁波国际照明展览会

    。 展位信息 杭州仟烨科技有限公司&杭州亚恺电子科技有限公司,6G-10       展会将持续至5月10日 欢迎各位莅临6G-10展位 参观交流 飞特电子专注于L
    的头像 发表于 05-09 18:22 753次阅读
    <b class='flag-5'>英</b>飞特电子亮相2024宁波国际照明展览会

    测试究竟是什么?与性能测试的差别是什么?

    测试性能测试在多个方面存在显著的区别。 首先,信测试是一个更为全面和系统的
    的头像 发表于 04-24 15:34 749次阅读

    测试哪些产品需要做呢?

    测试是指对信工程项目中的产品、系统等进行测试和验证,以确保其符合预期要求和性能表现。
    的头像 发表于 04-23 18:19 468次阅读

    龙芯中科三项信方案入围工信部2023年信息技术应用创新应用示范案例名单

    近日,工业和信息化部通报了2023年信息技术应用创新解决方案征集遴选结果,本次共评选出典型解决方案173个、应用示范案例83个、单项创新案例64个。
    的头像 发表于 03-07 16:45 843次阅读
    龙芯中科三项信<b class='flag-5'>创</b>方案入围工信部2023年<b class='flag-5'>信息技术</b>应用创新应用示范案例名单

    软通动力与捷技术签订战略合作协议

    近日,软通动力信息技术(集团)股份有限公司(以下简称“软通动力”)与宁波捷技术股份有限公司(以下简称“捷技术”)正式签订战略合作协议,并
    的头像 发表于 02-03 16:35 1076次阅读

    景行锐与KeyarchOS完成浪潮信息澎湃技术认证

    北京2023年11月22日 /美通社/ -- 日前,北京景行锐软件有限公司(简称景行锐)与KeyarchOS通过浪潮信息澎湃技术认证,双方兼容性
    的头像 发表于 11-23 06:18 789次阅读
    景行锐<b class='flag-5'>创</b>与KeyarchOS完成浪潮<b class='flag-5'>信息</b>澎湃<b class='flag-5'>技术</b>认证

    阐述量子信息技术的研究现状与未来

    20世纪 80 年代, 科学家将量子力学应用到信息领域, 从而诞生了量子信息技术, 诸如量子计算机、量子密码、量子传感等. 这些技术的运行规律遵从量子力学, 因此不仅其原理是量子力学, 器件本身也
    发表于 11-22 11:40 775次阅读
    阐述量子<b class='flag-5'>信息技术</b>的研究现状与未来