首页 文章 精选 留言 我的

精选列表

搜索[态度/观点],共7304篇文章
优秀的个人博客,低调大师

企业对于云存储的态度决定应用类型

云存储已经成为企业存储部署不得不考虑的一个因素,比如对象存储、块存储等。但是即便如此,对于在部分企业来说,专注于使用云存储还只是停留在思想上,一半的服务用户目的只存储了25TB或更少的数据在云中。更多一些,我们调查企业的6%,他们在云中存储了超过100TB的数据。 总之,企业发送的云端的平均数据量为32TB,并不是巨大量的,但这还是占据了这些用户总存储量的22%。 备份(62%)仍然是用于云存储的主要应用。39%的企业说,他们正在使用云存储服务作为他们的灾难恢复计划,这一使用用例正不断上涨。另外,数据归档(35%),协作与文件共享(35%),以及主存储也是今天使用云存储的流行方式。 目前,困扰云存储普及的最大因素仍是安全问题。54%的企业说他们仍然担心云中数据如何处理和管理。 本文转自d1net(转载)

优秀的个人博客,低调大师

C++ 之父反驳白宫观点

白宫国家网络主任办公室 (ONCD) 此前曾发布了一份报告,呼吁科技界主动减少网络空间的攻击面;通过改用 Rust 等内存安全编程语言、避免使用 C++ 和 C 语言等易受攻击的语言,以减少内存安全漏洞的数量来提高软件安全性。 C++ 之父 Bjarne Stroustrup 在日前与 InfoWorld 的采访中针对白宫的这些言论进行了反驳。“我感到惊讶的是,这些政府文件的作者似乎对当代 C++ 的优势和提供强大安全保证的努力视而不见。另一方面,他们似乎已经意识到,编程语言只是工具链的一部分,因此改进工具和开发流程至关重要。” Stroustrup 指出,安全性改进始终是 C++ 开发工作的目标。从 C++ 诞生的第一天起,提高安全性就一直是 C++ 的目标。只要将 K&R C 语言与最早的C++、早期的 C++ 以及当代的 C++ 进行就能看出差别。许多高质量的 C++ 都是使用基于 RAII (Resource Acquisition Is Initialization)、容器和资源管理指针的技术编写的,而不是传统的 C-style pointer messes。 Stroustrup 还列举了为改善 C++ 安全所做的一系列努力。 与安全有关的问题有两个。在数十亿行的 C++ 中,很少有完全遵循现代准则的,而且人们对安全的哪些方面是重要的概念也不尽相同。我和 C++ 标准委员会正在努力解决这个问题。 Profiles 是一个框架,用于指定一段代码需要什么保证,并启用实现来验证它们。委员会网站上有描述这一点的文件(可查看 WG21),并且还会有更多文件。然而,我们中的一些人没有心情等待委员会必然缓慢的进展。 Profiles 是一个框架,允许我们逐步改进 guarantees —— 例如,相对较快地消除大多数range errors,并通过本地静态分析和最少的运行时检查逐步将 guarantees 引入大型代码库。我对 C++ 的长期目标一直是在需要的时候提供类型和资源安全。也许当前对内存安全的推动 —— 我想要的 guarantees 的一个子集 —— 将有助于我的努力,C++ 标准委员会中的许多人也认同这一点。 相关阅读: 白宫敦促开发者改用内存安全的编程语言 美国 CISA 建议放弃 C/C++,消除内存安全漏洞 C++ 之父:Rust 等内存安全语言的安全性并不优于 C++ 美国国家安全局建议从 C/C++ 切换到内存安全语言

优秀的个人博客,低调大师

Windows NT服务--独立的观点

在windows中,服务是一种特殊的进程,可以说它和用户无关,它的作用不是完成用户任务,而是进行一些管理类的操作或者通用的服务类操作,实际上windows服务就是一个可执行文件,但是远远不只是这些。 Windows NT的服务架构非常复杂,是整个系统架构中独立的一块。windows服务执行的往往都是一些无须用户介入的任务,也就是说它执行的任务不是具体的,而是具有支撑性质的,比较底层的,比如网络登录,文件驱动,设备驱动,ftp等等,其他的进程往往就和登录用户密切相关了,毕竟计算机就是让用户使用的,而其上执行的任务也就是用户要求的,因此用户是windows进程一个很重要的属性,同时也是操作系统本身一个很重要的性质,可以实现安全管理等相关操作。 windows服务主要由三部分组成,一是服务本身;二是服务控制管理器(SCM);三是服务控制程序(SCP)。SCM是个管理中心,管理着所有的线上服务,所谓线上服务就是已经安装的服务,SCP和SCM交互来管理服务本身,注意服务本身并不需要直接和SCM交互,这样就可以让写一个服务变得更加容易,人们可以像写普通的应用程序一样来完成一个服务的编程,唯一需要附加的就是和SCP接口就可以了,这样看来虽然windows服务的架构非常复杂,但是三者之间的耦合度却很低,足见设计的精妙。SCM维护着一个数据库,该数据库储存着已安装的服务和驱动程序的信息,SCM管理着它们,SCM根据这些信息控制服务的关闭和启动等行为,服务可以从SCM接收命令然后采取一定的动作,注意它是通过SCP来接收命令的,服务本身就是一个一直运行的应用程序,SCP作为一个 接口提供出来,用户可以通过它控制服务的行为,SCM同时也和SCP交互,在这繁复的数据流背后是成熟的RPC,windows中信号是不流行的,但是RPC却非常普遍,下面通过一个简单例子说明一下枝枝蔓蔓: #include "stdafx.h" #include.h> void Install(char * name); void Uninstall(char *name); char *a = "mee11"; BOOL Running = TRUE; SERVICE_STATUS_HANDLE hServiceStatus; SERVICE_STATUS status; SC_HANDLE hSCM; int option(int argc, TCHAR* argv[]) { hSCM = ::OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS); if (argc <= 1) return 0; if (_wcsicmp(argv[1], _T("-i")) == 0) { Install(a); ::CloseServiceHandle(hSCM); return 1; } if (_wcsicmp(argv[1], _T("-u")) == 0) { Uninstall(a); return 1; } return 0; } void Install(char *name ) //安装服务,实际上就是将该新服务的信息写入SCM管理的数据库中 { if (!hSCM) return 0; char szFilePath[260]; ::GetModuleFileNameA(NULL, szFilePath, sizeof(szFilePath)); SC_HANDLE hService = ::CreateServiceA(hSCM,(LPCSTR)name,(LPCSTR)name,SERVICE_ALL_ACCESS,SERVICE_WIN32_OWN_PROCESS,SERVICE_DEMAND_START,SERVICE_ERROR_NORMAL,szFilePath,NULL,NULL,NULL,NULL,NULL); if (!hService) { ::CloseServiceHandle(hSCM); return ; } char szKey[256]; HKEY hKey = NULL; strcpy(szKey, "SYSTEM//CurrentControlSet//Services//EventLog//Application//"); strcat(szKey, name); if (::RegCreateKeyA(HKEY_LOCAL_MACHINE, szKey, &hKey) != ERROR_SUCCESS) { ::CloseServiceHandle(hService); ::CloseServiceHandle(hSCM); return; } ::RegSetValueEx(hKey,_T("EventMessageFile"),0,REG_EXPAND_SZ, (CONST BYTE*)szFilePath,strlen(szFilePath) + 1); DWORD dwData = EVENTLOG_ERROR_TYPE | EVENTLOG_WARNING_TYPE | EVENTLOG_INFORMATION_TYPE; ::RegSetValueEx(hKey,_T("TypesSupported"),0,REG_DWORD,(CONST BYTE*)&dwData,sizeof(DWORD));::RegCloseKey(hKey); ::CloseServiceHandle(hService); } void Uninstall(char *name) { SC_HANDLE hSCM = ::OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS); if (!hSCM) return ; SC_HANDLE hService = ::OpenServiceA(hSCM,name,DELETE); if (hService) { if (::DeleteService(hService)) ::CloseServiceHandle(hService); } ::CloseServiceHandle(hSCM); } static void WINAPI Handler(DWORD dwOpcode) { //注意是在这个Handler回调中处理的SCM发来的命令,这里要做的就是设置控制变量,间接改变服务的运行行为。 switch (dwOpcode) { case SERVICE_CONTROL_STOP: status.dwCurrentState = SERVICE_STOP_PENDING; ::SetServiceStatus(hServiceStatus, &status); Running = FALSE; break; default: break; } ::SetServiceStatus(hServiceStatus, &status); } static void WINAPI ServiceMaina(DWORD dwArgc, LPTSTR* lpszArgv) { hServiceStatus = RegisterServiceCtrlHandlerA(a,Handler); ::SetServiceStatus(hServiceStatus, &status); status.dwCurrentState = SERVICE_RUNNING; ::SetServiceStatus(hServiceStatus, &status); while (Running) { //做具体的服务吧,就像这是一个普通的应用程序一样 } status.dwCurrentState = SERVICE_STOP_PENDING; ::SetServiceStatus(hServiceStatus, &status);//最后告诉SCM,这个服务停止了。 } void StartService() { SERVICE_TABLE_ENTRY st[] = { {(LPWSTR)a, ServiceMain},{NULL, NULL}}; status.dwServiceType = SERVICE_WIN32_OWN_PROCESS; status.dwCurrentState = SERVICE_STOPPED; status.dwControlsAccepted = SERVICE_ACCEPT_STOP; status.dwWin32ExitCode = 0; status.dwServiceSpecificExitCode = 0; status.dwCheckPoint = 0; status.dwWaitHint = 0; ::StartServiceCtrlDispatcher(st);//分派器开始,服务即将开始运行 } int _tmain(int argc, _TCHAR* argv[]) { if(!option(argc, argv)) { StartService(); } return 0; } 看到在RegisterServiceCtrlHandlerA中注册的Handler了吧,Handler就相当于一个控制器,这个Handler就是负责接收和处理命令的,它和主服务在不同的线程当中,主服务也就是上面例子中的while循环线程可以旁若无人的做任何事情,控制变量是全局的,可以在别的线程被改变,这个变量控制着服务的关闭行为,一切就是这么简单。关于服务的调试,可以用远程调试的办法进行。 windows专门为服务这个东西设计了如此复杂的机制,看得出服务的重要性,不过也不一定,windows本身就是微核结构而且内部大量使用了C/S架构,它为任何东西单独设计一个机制都不足为奇。它的API相当复杂,之所以这样就使因为windows是面向用户的,而用户是很难缠的,因此其api就提供了很多策略性的东西,当然也就相对复杂,windows服务仅仅是其中的一块而已,不过即使这样,windows的设计者还是做的很不错,程序员几乎不用费力就可以完成一个服务框架,当然如果深入一些,还有更加复杂的,不过那就涉及到一个新机制了,这就是svchost,很熟悉吧,不过不说了,我不喜欢讨论网上一搜一堆的东西,我比较喜欢思想性的东西,最起码还可能遭到一些反驳... 本文转自 dog250 51CTO博客,原文链接:http://blog.51cto.com/dog250/1273461

优秀的个人博客,低调大师

专家观点:Docker 架构优缺点大剖析

在Docker问世后,其打包应用程式、快速部署的能耐,受到开发者的广大欢迎。在2015年,Docker进一步推出私有储存库功能Docker Registry,以及原生网路功能Docker Networking,让企业更容易自行架构Docker丛集。这些都让Docker逐渐成为正式环境的新选择。 在Docker受到一片好评下,着有《Docker源码分析》,大受到中国Docker社群好评的孙宏亮认为,Docker至少有3大缺点,还无法满足各种环境的需求。深入研究Docker原始码的他,也是中国Docker PaaS服务商DaoCloud参与第一线开发的软体工程师。 别于多数Docker开发者从应用程式面切入谈论Docker的角度,孙宏亮在2015 Container Summit上,则是选择从Docker的程式码设计架构,来剖析优缺点。 孙宏亮也指出,Container技术虽然已经发展许久,但是透过Docker独特的映像档设计,才使Container技术在近年发扬光大。 独特映像档设计让Docker爆红 Container技术最早可以追溯至1979年时推出的Unix V7,其中的chroot系统呼叫指令,透过更改程序的根目录,达到系统程序隔离的效果。而发展已经超过30年的Container技术,为何迟至2013年才因为Docker横扫全球IT业界,孙宏亮解释,因为Docker映像档的设计,使得Docker得以打破过去「程式码即应用」的观念。 传统上认为,软体开发结束后,所产出的成果即是程式码,或是能够编译执行的二元执行档。 而为了让这些程式码可以顺利执行,开发团队也得准备完整的部署文件,让维运团队得以部署应用程式,不过,即便如此,仍然常常发生部署失败的状况。孙宏亮表示,Docker透过映像档,将作业系统核心外,运作应用程式所需要的系统环境,由下而上打包,达到应用程式跨平台间的无缝接轨运作。 而微软已经宣布,将在下一代的Windows Server 2016中内建Docker Engine,使得Windows Sever可以原生支援Docker。但孙宏亮也解释,目前Windows对Docker的支援,多数还是在API层。除了Windows作业系统与Linux在Kernel层差异很大外,Windows也有发展有自家的Container技术。 Docker映像档的设计,使得Docker得以打破过去「程式码即应用」的观念。透过映像档,将作业系统核心除外,运作应用程式所需要的系统环境,由下而上打包,达到应用程式跨平台间的无缝接轨运作。(图片来源/孙宏亮) 系统服务Docker化的障碍 虽然Docker透过了映像档设计,解决传统维运团队在部署上的问题。但是,在将系统服务Docker化、应用程式Docker化时,使用者仍然会碰到实际面的问题。 孙宏亮表示,当应用程式必须调度系统的服务,例如利用cron服务,将工作设定为自动化执行,或是执行syslog服务收集系统日志时,此时开发者就会碰到使用Docker的障碍。 例如,虽然可以使用Docker将cron服务打包,但是Docker化的cron服务,与传统Linux中cron服务间有很大的区别。孙宏亮表示,一旦将cron服务容器化后,原始的环境变数设定都会失效。所以使用者必须分析软体、Container的运行方式,才能满足使用的需求。另外,Docker与Linux Kernel的沟通能力薄弱,行程间沟通(inter-process communication,IPC)会被进行隔离。像是NFS伺服器接受客户端提出的请求后,会将需求再次传递给Linux Kernel,「使用者将这些功能容器化前,都必须再三考虑。」他表示。 并非任何应用程式都适合Docker化 而在应用程式Docker化的方面,虽然Docker的快速部署特性很吸引人,但是未必所有的应用程式都适合Docker化,像是MySQL,孙宏亮认为如果将其Docker化则存在一些弊端。例如,当使用者的资料需要进行额外备份,需要创造MySQL的资料库Container,可以透过Docker run指令,创建一个MySQL的Database Container,或是使用docker run指令,修改MySQL的环境变数。而这些环境变数会透过Docker Daemon、Docker Engine,用json的档桉格式储存在Docker Container中。 存在于Docker Container中的环境变数,对于Docker Engine并没有意义,但是对于使用Docker的用户则存在隐忧,如果被无关的第三方看见,使用者的Container可能会产生资安上疑虑。所以,孙宏亮认为,传统开发者在使用MySQL的思维,并不能无缝转移到Docker的世界中运作。 孙宏亮表示,在Docker问世后,Docker官方也宣称Docker的设计是以应用程式为中心(application-centric),希望使用者将心力集中在开发应用程式,而Docker官方也不特别鼓励使用者,将Docker视为取代VM,作为新一代运算单元的想法。他认为,当Docker用于打包网页应用程式,或是比较单纯的系统服务,可以达到很好的Docker化效果。不过,如果要将Docker的使用范围扩大,开始涉及到作业系统的基础运行层次,或是分散式系统在推动微服务时,使用Docker会产生一些问题。 共用Linux Kernel,让Docker安全性先天不足 而从技术面的角度切入,孙宏亮表示,Docker就是分配硬体资源、实现资源隔离的Container技术。而谈到资源隔离,他表示,一般人会联想到Container技术中最基本的观念,像是命名区域namespace及cgroup等技术。而Docker Container技术的火红,以前无法透过VM执行的功能,现在也可以透过Container实现。许多使用者因此也开始议论,是否可以利用Container技术取代VM。 一般的实体伺服器,只要具备Linux Kernel就可以运行Container,或是透过Hypervisor层,使用Linux Kernel上运作的虚拟机,运行Container。孙宏亮认为,以这样的角度看待,Linux Kernel是运作Container,所需满足的最重要条件,而无论是实体伺服器或是VM,都能达到上述的条件。不过,Container在实体机上运作,可以达到媲美裸机的效能,而在VM中运作时,则会产生效能折损。 而谈到Container的资源隔离,孙宏亮表示,一般使用者最直觉想到的不外乎是CPU、记忆体以及IO等运算资源。而他认为,「资源」的范畴应该不只如此。虽然Container可以透过cgroup、namespace做到运算资源的隔离,但是,「如果没有Linux Kernel,使用者也不可能运作Container。」他表示,如果将Linux Kernel也纳入资源的范畴,因为Container与作业系统同时共用Kernel,所以其实并没有实现资源隔离。但是,VM与VM之间,并不会共用作业系统核心。因此,VM的资源隔离性一定会比Container来得更好。 虽然Docker Container也会受到资源的隔离、控制,以及权限控制,但是由于跟Linux共用作业系统核心,进而会产生安全上的漏洞。为了解决这样的问题,孙宏亮表示,可以透过Linux的capability机制,加强权限的控管,使Container内部的root跟外部的root权限产生差异外,同时也让Container在系统管理的能力,与宿主主机进行区隔,藉此解决Container的安全问题。 在去年推出的Docker 1.9.0当中,Docker也加入了username space机制,孙宏亮表示,在安全性方面,这是Docker所达成的一个里程碑。只要透过namespace,让Container运作的时候,使用者可以拥有更多权限,同时也不会影响到宿主主机。 本文作者:佚名 来源:51CTO

优秀的个人博客,低调大师

观点/正确判读大数据 物联网命脉

物联网、人工智能时代来临,背后推手是庞大的实时数据,根据IDC估计,光是去年全球所产生、收集和复制的资料总量高达16.1ZB(十亿兆字节),且继续呈十倍速成长,预估到2025将暴增至163其中有20%自物联网。惟这些许多数据需配合实时判断,一旦出错,可能造成严重后果。 我平常除了待在美国加州的办公室,也经常往返不同城市,拜特斯拉(Tesla)的自动驾驶功能之赐,与其说是“开车”,我现在其实比较常“搭车”。做为车联网的一员,我的特斯拉每天都透过实时数据不断学习。 举例来说,若我在高速行驶时行经一个坑洞而踩下刹车,汽车系统便会记录数据并上传云端。当有更多车辆在相同GPS地点记录类似信息,特斯拉会不断学习,之后行经同一位置时会自动减速。这就是物联网结合人工智能所产生的效益,背后推手就是实时数据。 大数据数据是物联网的命脉,带给新一代物联网智能装置生命力,对生活的影响已经无所不在。我们也没有在这波物联网浪潮中缺席,例如台湾警方四年来不断整合全台十九个县市、超过七万支监视器,以人脸辨识技术,十秒内便能跨区查出当事人的信息。 以多数监视系统具百万画素等级来看,光是单支监视器24小时录像,就需要至少13.6GB的储存容量。如果以七万支监视器全年运作计算,等于需要至少34万颗1TB容量的硬盘。 物联网虽然带来许多方便,但相关应用一旦发生错误,可能导致严重伤害或破坏。这些海量数据的背后,需仰赖庞大、有效率且安全的数据储存装置。尤其物联网所产生的很多数据,是必须实时判断的“超关键数据”,这些数据正在急遽攀升中,未来我们必须能够区分数据类型,否则将面临潜在的严重后果。 本文转自d1net(转载)

优秀的个人博客,低调大师

来自2016闪存峰会的14个闪亮观点

新的持久性内存及技术承诺会重塑计算。在今年的闪存峰会(Flash Memory Summit)上,工程师们谈到了他们如何从服务器设计和网络存储到机器学习及闪存芯片价格等方方面面推动该领域的变革。 今年大会的一个热门话题就是缩小网络上闪存存储阵列与服务器上固态盘(SSD)之间的差距。系统会访问闪存——不管闪存是本地的还是在数据中心中的,这个想法推动着新的系统、芯片和软件设计向前发展。 为了推动这个趋势,NVM Express组织刚刚发布了一项规范,旨在让NVMe闪存接口可以运行在以太网、光纤通道和InfiniBand这样的网络上。这个所谓的NVMe over Fabric规范用于各种方案可直接访问内存。 即将公布的PCI Express Gen 4标准也将推动这个趋势,部分原因是PCIe已经形成了NVMe的通道。Gen 4的速度将把固态盘上老旧的SAS和SATA接口远远甩在后面。最终PCIe预计将在固态盘中占主导,并且成本相对较低。 美光公司高级架构总监Stefanie Woodbury曾经主导设计了该公司基于3D XPoint的固态盘,他指出,这方面已经做了大量工作。考虑到有三种框架,互操作性是非常关键的:多直连内存、各种块、文件和流存储语义——以及新兴的内存类型,例如3D XPoint。 美光公司的Woodbury展示了3D XPoint SSD原型(图片来源:EE Times) “我在希捷公司的时候,我们推出了首个光纤通道驱动器,这听起来很熟悉,”Woodbury表示。 这个趋势对于全新的闪存控制器设计来说是一个机会,希捷公司首席控制器架构师Tim Canepa这样表示,他之前是在SandForce公司工作。 工程师们并没有通过将SSD和框架控制器打包来创建有效的产品。Canepa表示,我们需要全新的设计,他支出,控制器领域有大量隐身模式的初创公司——其中一些因为市场对于新兴内存类型(例如英特尔/美光的3D XPoint)的需求而得到关注。 其他芯片和系统初创公司也在今年的闪存峰会上展示了他们的装备。Kalray展示了有288个定制VLIW核心的处理器运行NVMe over Ethernet基于2.0版本的直连内存访问方法。 在系统层面,Mangstor展示了他们的双插槽服务器,集成了闪存和Mellanox网卡。但是该公司表示,他们针对NVMe over Fabrics的软件是在SNIA规范推出前公布的,这是他们的秘密武器。 竞争相当激烈。今年大会上E8 Storage凭借自己的闪存阵列赢得了一个奖项,该阵列提供了惊人的1000万IOPS,同时支持在NVMe上100us读和50us写。 NVXL加速器把一个Altera FPGA放在了一个SSD中。 为什么在你可以驾驭两个趋势的时候只驾驭热门的那一个?这就是很多把闪存添加到加速器的产品背后的理念。 BitMicro展示了在SSD上封装英特尔Arria X的NVXL以用于机器学习的算法。这家初创公司的关键技术就是软件,以及将用户在高级Spark数据分析项目中写入连接到低层级FPGA硬件的API。 该公司正在致力于开发一种ASIC,希望明年可以在SSD出货采用这种技术。FPGA版本最早会在今年秋季出来样品。 加速器被打包在一个PCIe Gen3 SSD中,这样用户就可以添加很多个联合处理器到服务器中,只要有充足的PCIe插槽。他们甚至可以构建定制阵列,最多配置24个这样的驱动器。 东芝开发了它自己的混合阵列和加速器Flashmatrix。 东芝决定自己开发这种混合阵列/加速器阵列。东芝的Flashmatrix(上图)封装了24个英特尔Atom 2758处理器(每个有8个核心)和48个Xilinx FPGA到一个2U系统内,该系统有24TB闪存。 这个1.3千瓦的系统目标是运行一系列挑战不那么大、瞄准边缘网络的数据分析任务。这次大会展示的原型使用的是东芝eMMC闪存,但是未来的产品将会采用BiCS闪存。 华为的目标是让多个这样的系统从新的软件堆栈(如下图)开始,可以处理闪存或者任何新型内存。华为首席研究员Balint Fleischer预测,未来将会有一种联合处理器介于大量DRAM和大量驱动器之间,用于处理专门针对特定新应用的内存中的数据。 “我们将以一种类似数据联合处理器的功能块,带有高速引擎用于I/O功能,”Fleischer在谈话中表示。“这种功能可以迁移到CPU本身,”他补充说。 毫无疑问,英特尔将在一年一度的开发者论坛上推出类似的概念,也是自它收购Altera以来首次推出。 的确,这次闪存峰会上有很多人说,主内存与存储之间的界限越来越模糊,未来还会有更多闪存和新型内存。内存已经在计算机设计中打开了新的理念,这将重塑写应用的任务方式。 华为开发了在一种软件堆栈,可以为支持存储级内存的联合处理器提供强大支撑。 SNIA展示了来自4家做得还不错的厂商的NVDIMM。 存储网络行业协会(SNIA)展示了让双带内内存模块与DRAM及闪存(也就是NVDIMM)很好地配合方面取得的进展。它展示了来自Agiga、美光、Netlist以及Smart Modular的NVDIMM,运行在一台服务器上(如上图)。 这并不是第一次有这样的展示,但是有了来自SNIA的标准工作就变得轻松多了,处理BIOS以及处理应用层任务的pmem开源代码。这样软件的负载就不那么重了,厂商希望这个市场将从现有的小规模,开始服务于一些网络设备以及大型数据中心。 Netlist在今年闪存峰会上展示了自己的HybridDIMM(如下),封装了8GB DRAM、256GB闪存以及2个Xilinx FPGA。它宣称,该卡将打破其他厂商对NVDIMM定义的局限性,可应对各种读取密集型应用。Netlest展示了该卡运行在联想和超微的服务器上,并称将会在今年年底前提供样品。 当前的NVDIMM软件将有助于为新型内存铺平道路。Objective Analysis分析师Jim Handy表示,他认为英特尔的3D XPoint DIMM将利用现在不少新软件所采用的接口来处理芯片不断变化的访问时间。 英特尔已经正在将新指令写入自己的x86处理器以应对3D XPoint内存,Handy说。Linux和Windows操作系统将支持新的缓存技术,SNIA也将针对永久性内存制订编程标准。 现在,该行业正需要为此编写大量的应用代码。 Netlist宣称自己的HybridDIMM打破了现有NVDIMM的限制。 多年来,专家预测将会有大量新型内存将介于DRAM和NAND之间,即使到了今天,这种猜测依然存在。 多年来IBM一直在相变内存方面处于领先地位。ARM据称将会涉足CeRAM。各种MRAM也正在积极进入市场。 甚至在今年详细说明了自己3D NAND将在DRAM和NAND之间拉开差距的三星也表示将会在这个领域有所动作。但是在今年的闪存峰会上,3D XPoint是为一个观察者们认为短期内会给市场带来冲击的技术。 “未来10年还会有一两项技术会进入市场,”分析师Handy说。但是当被问及另外一项与XPoint比肩起飞的技术,他说,“我还没有听说任何具有这种影响力的技术”。 对于Marvell来说,它显然将这个领域视为自己最后一级缓存概念的控制器的一个机会。“他们非常关注内存层,我们将会进入到一个其他人都在关注内存层的年代,”Handy表示。 的确,Marvell首席技术官吴子宁展示了最后一级缓存概念以及用于下一代灵活内存控制器的Mochi内联技术。存储级内存需要一种新的硬件缓存引擎,这可能会生成数百万的数据点,需要在纳秒级的时间内处理,他表示。 这样的引擎应该支持多Gb缓存和16Kb缓存线,应该有针对低命中率的设计,以及低开销处理的CAM,在不到10个时钟周期内处理操作。 吴子宁没有说他是否会针对3D XPoint开发这种控制器。不过他说,“我们的控制器将会在大量存储级内存之前做好准备。” 工程师们在西部数据的展台上谈论ReRAM理念。 西数公司(现已收购SanDisk)内存技术负责人Siva Sivaram认为,西数的电阻式RAM将是未来的一股热潮,而不是XPoint。他说,ReRAM技术将会在2020年出货。 “XPint并不是适合未来的技术,”Sivaram在一次谈话中表示。“我们承诺ReRAM是可扩展的,相比XPoint有更高的密度、更低的成本和延迟,以及更高的耐用性。” “随着时间的推移,我们可以开发出一种带有ReRAM技术的通用内存,”他补充说。“我们已经评估了所有选择,决定着是我们要走的方向,”他说。 从他所说的话中可以看出,这对于全球最大的存储公司来说是一件重要的事情。但是,西数目前主要的业务仍然是基于硬盘的。 另一方面,像Crossbar这样的小型初创公司正在开发他们自己的技术。 中国的SMIC公司已经将Crossbar的这样技术带入自己的40纳米制程工艺中。一位公司发言人表示,多个设计方将会在明年推出采用1-8 Mb内置Crossbar内存块的微控制器级SoC,因为它相比内嵌闪存的功能更低、性能更高。 与此同时,Crossbar正在与其他代工厂合作,打造28纳米和40纳米节点的产品。 Crossbar展示了用SMIC 40纳米晶圆制造的内存。 今年的闪存峰会恐怕会因为美光推出备受瞩目的3D XPoint产品给人们留下深刻印象。在主题演讲、谈话、展台采访以及鸡尾酒晚会上,美光都在庆祝自己的Quantx SSD(将在明年提供样品)取得的胜利。 一位资深的系统架构师谈到了XPoint以及新型内存的重要性。. “在我职业生涯的前15年,我认为处理器和指令集架构是最重要的事情,现在我认为将数据迁移进和迁移出计算机是最重要的,”美光高级计算副总裁Steve Pawlowski在一次谈话中这样表示。 Pawlowski曾经在英特尔工作多年,设计从386到Haswell系统。研究未来百亿亿级超级计算机的需求,这让他敏锐地意识到内存瓶颈的重要性,内存瓶颈会“吃掉”如今全球最大规模系统的大部分周期。 他说,他正在于大学、国家实验室和计算机制造商合作,把内存放在未来采用XPoint计算机架构的中心。百亿亿级系统将需要将功耗降低至每个操作25皮焦耳,对新型内存接口的需求,迫使美光“正在与一家有价值的客户”合作开发工作。 美光公司的Pawlowski谈到以内存为中心的计算机系统结构。 此外他还指出,他“在过去三年中已经成为了NVNDIMM的粉丝……起初我认为这种技术只是昙花一现。” 美光研究人员在DRAMA中看到的性能异常问题,是推动3D XPoint相关工作的一个动力。 “我们预计在我们看到它之前会有两代工艺,因此我们开始了围绕XPoint的工作,”他说。“DRAM还将会存在一段时间,我们将会找到修复问题的方法,但是DRAM会变得越来越昂贵……从现在开始的未来20年内,都很难在每比特成本方面打败NAND。” 展望未来,软件将成为以新型内存为核心的计算架构的瓶颈,他这样表示。XPoint让这个行业步入了一条通向新软件生态系统的道路,但是任何新的架构“都需要经过两次夏季奥运会的时间周期”逐渐成熟,他打趣说。 如今,美光正在与一个奥斯汀的团队合作为XPoint配置应用,该团队也在探索如何使用XPoint SSD。“我认为将会有针对现在和未来内存的应用……一旦开发者们有了硬件,软件方面就应该开始考虑这些问题了。” 芯片制造商面对着让3D NAND投入量产的棘手挑战,Handy表示。 关于3D XPoint被用于硬件设备的时间,这个行业可能会突然被淹没在3D NAND中。随着这个行业正在快速远离盘片式的NAND,这会导致价格大幅跳水,出现供过于求的情况,Handy表示。 只有三星和美光在今年批量出货了3D NAND。其他将会提供样品,解决各种挑战来制造这种芯片(如上),Handy表示。他预测所有厂商都将努力推动让成本到2018年年中降低到每GB只有3美分。 在这一点上,他们将把晶圆转向远离盘片式工艺,出现供过于求的情况。他猜测这不会立即影响到SSD的采用。市场对容量和性能的要求将推动对这种驱动器的需求,不会像市场价格那样出现大幅波动,他补充说。 三星表示,他们的64层V-NAND将会大幅降低成本,借助它开发的一种新型扇出封装。 三星踏上3D NAND是从2013年在闪存峰会上宣布首款产品开始的。从那时候开始,三星每一年分别展示了32层、48层和今年的64层版本。 今年组织者给三星电子公司总裁Kinam Kim颁发了成就奖。Kim表示,2003年他作为三星芯片研发部门的负责人时第一次看到盘片式闪存的局限性,并要求就新的电荷捕获技术展开相关工作。 “由一个大型团队十多年的坚定努力让这变成了可能,”他说,他承诺未来会推出超过100层的版本。 Kim做了他分内的工作,到目前为止发表了480片技术论文,多篇论文发表在《科学与自然》上,获得超过130项专利。“目前对闪存的需求正在推动着半导体行业实现新的繁荣,”他说,他称当前的移动时代“是电子行业最大的变革”。 三星希望借助自己变体版3D闪存——Z-NAND来打败3D XPoint。 原文发布时间为:2016年8月15日 本文作者:杨昀煦 本文来自云栖社区合作伙伴至顶网,了解相关信息可以关注至顶网。

资源下载

更多资源
Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册